我有一个带有多个标签的Excel,并且表格的名称为
sheet0,sheet1,.... sheet10
我想使用 ksh 或 bash 重命名这些标签,以便在UNIX shell中执行此操作。
请注意,通过excel的标签,我的上下文是excel表的名称,它显示在excel的底部。用于生成excel我在while循环下使用带有语法{arrayelements [*]}
的数组。
答案 0 :(得分:0)
如果我希望您足够灵活,可以从命令行重命名Excel工作表,而不一定只使用shell(例如Bash)构造,那么可以使用Python模块为Excel文件完成很多工作。请参阅:here。
答案 1 :(得分:0)
a=$(cat test.xml)
b=${a//sheet0/whatever_you_want}
echo "$b" > test.xml
或循环:
for ((x=0;x<=10;x++)) do
a=$(cat test.xml)
b=${a//sheet$x/whatever_you_want$x}
echo "$b" > test.xml
done
这将遍历工作表名称并将其替换为您想要的任何内容。 据我所知,这适用于.xml,但不适用于.xls或.xlsx文件,因此需要先将其保存为.xml文件。
根据评论进行修改
使用gnumeric ssconvert
附带的linux命令,您可以将.xlsx文件转换为.xml,并在更改工作表名称后,从.xml转换为.xlsx:
ssconvert --export-type=Gnumeric_XmlIO:sax:0 test.xlsx test.xml
ssconvert --export-type=Gnumeric_Excel:xlsx test.xml test.xlsx
此处的文档:http://linuxcommand.org/man_pages/ssconvert1.html
对于单独的bash而言,该文件转换有点过于复杂。