Excel 处理values文件中dimen 的数值问题

比如<dimen name="px11">11.0dp</dimen> 是在一个格子里的,如何将它拆分并操作呢?如果是一整个文件都要修改呢, 写这样的文件的话应该有对应的代码实现,一个java代码就可以实现,这个具体代码我们放在最后,除此之外还有没有别的方法呢,可以用Excel来处理这个问题.

要在 Excel 中将包含 <dimen> 标签的整行文本(例如 <dimen name="px11">11.0dp</dimen>)进行拆分并将数值部分乘以 2,可以按照以下步骤操作:

1.Excel操作

步骤 1:拆分文本

  1. 复制原始数据到 Excel 的某一列,例如 A 列。

  2. 使用 Excel 的"分列"功能

    • 选择包含数据的列(例如,A 列)。
    • 在 Excel 菜单中,选择"数据" -> "分列"。
    • 选择"分隔符"选项,点击"下一步"。
    • 选择"其他",并在输入框中输入 ">",然后点击"完成"。
    • 这将数据拆分为多列,<dimen name="px11"11.0dp</dimen> 分别在 A 列和 B 列中。

步骤 2:提取并修改数值

  1. 提取数值部分

    • 在 C 列中使用公式提取数值部分:

      =LEFT(B2, FIND("dp", B2)-1)

    • 这会提取并显示 B 列中的数值部分,例如 11.0

  2. 将数值乘以 2

    • 在 D 列中,将提取出来的数值乘以 2:

      =C2*2

步骤 3:重新组合文本

  1. 组合修改后的数值和原始文本

    • 在 E 列中组合新的数值和原始的前后部分:

      =A2 & ">" & D2 & "dp"

    • 这将生成类似于 <dimen name="px11">22.0dp</dimen> 的新字符串。

  2. 复制并粘贴新值

    • 将 E 列的新字符串复制并粘贴回 A 列(可以使用"选择性粘贴" -> "值"来替换原有数据)。

最终结果

按照以上步骤,你就可以在 Excel 中批量修改 <dimen> 标签中数值部分,并保持标签的格式不变。

如上所示.

2.java代码实现

复制代码
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;

public class MakeXml {
    private final static String rootPath = "D:\\work-space\\android\\dome\\MyApplication\\app\\src\\main\\res\\values-sw{0}dp\\";

    private final static float dw = 320f;
    private final static String DtemplateDp = "<dimen name=\"dimen_dp_{0}\">{1}dp</dimen>\n";
    private final static String DtemplateSp = "<dimen name=\"dimen_sp_{0}\">{1}sp</dimen>\n";
    public static void main(String[] args) {
        makeString(320);
        makeString(340);
        makeString(360);
        makeString(400);
        makeString(480);
        makeString(520);
        makeString(600);
        makeString(720);
        makeString(820);
        makeString(1080);
    }

    public static void makeString(int w) {

        StringBuffer sb = new StringBuffer();
        sb.append("<resources>");
        float cellw = w / dw;
        for (int i = 1; i <= 450; i++) {
            sb.append(DtemplateDp.replace("{0}", i + "").replace("{1}",
                    change(cellw * i) + ""));
            if (i<50) {
                sb.append(DtemplateSp.replace("{0}", i + "").replace("{1}",
                        change(cellw * i) + ""));
            }
        }
        sb.append("</resources>");
        String path = rootPath.replace("{0}", w + "");
        File rootFile = new File(path);
        if (!rootFile.exists()) {
            rootFile.mkdirs();
        }
        File layxFile = new File(path + "dimens_"+ w +".xml");
        try {
            PrintWriter pw = new PrintWriter(new FileOutputStream(layxFile));
            pw.print(sb.toString());
            pw.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }

    public static float change(float a) {
        int temp = (int) (a * 100);
        return temp / 100f;
    }
}
相关推荐
观远数据16 小时前
Excel到数据资产池:文件数据入湖的治理规范怎么建
前端·javascript·excel
蓝创工坊Blue Foundry18 小时前
PDF 批量提取指定内容到 Excel:按字段整理多个 PDF 的方法
pdf·ocr·excel·文心一言·paddlepaddle·paddle
用户2986985301420 小时前
React 项目中灵活管理 Excel 工作表:增删与移动
javascript·react.js·excel
程序猿乐锅2 天前
【苍穹外卖 Day12| Excel 入门】
excel
用户298698530142 天前
Python 数据处理:XML 与 Excel 互转的实用指南
后端·python·excel
xiaopai9453 天前
采购系统和Excel表格区别:钢结构项目物资管理的真实较量
excel·建米软件·采购系统
协享科技3 天前
2026 年 AI 表格工具怎么选:ChatGPT、原生 Copilot/Gemini 与公式助手
人工智能·chatgpt·excel·copilot
用户298698530143 天前
前端实战:在 React 中使用 JavaScript 一键导出 Excel 图表与形状为图片
javascript·react.js·excel
Q一件事3 天前
arcpy实现分区统计到一张excel中
excel
AI刀刀3 天前
deepseek 内容粘贴后符号丢失怎么办?AI 导出鸭实测解决排版乱码问题
android·人工智能·excel·ai导出鸭