我有许多单元格,我想转换,以便每个单元格中的第一个字母大写 . 例如 . cook, chef, fireman
变为 Cook, Chef, Fireman
.
-
我在OpenOffice.org中有电子表格,但它似乎只有"all uppercase"或"all lowercase"的选项 .
-
如果OpenOffice.org无法执行此操作,我可以在OpenOffice.org中编辑它或导出为CSV并使用BASH脚本编辑CSV .
如何将电子表格中每个单元格的第一个字母更改为大写?
10 回答
Perl单线:
您还可以使用
-i
开关进行就地编辑 . 例如 .perl -pi.bak -we ...
更长的版本,使用Text::CSV_XS . 该模块(可能)会更仔细地处理您的csv文件 .
运行它:
perl script.pl file.csv > fileout.csv
我有一个awk脚本可以做你想要的(我想) .
这是我的test intput(test.input):
我的awk脚本(up.awk):
我如何运行脚本:
awk -f up.awk test.input >test.output
test.output中的输出:
这可能对你有用:
可能是GNU sed具体的 .
将其导出为csv . 然后做这样的事情 .
也许你只需要更新一个版本 . 我正在使用LibreOffice 3.4.4,我看到了
Format -> Change Case -> Sentence case
,我说这正是你所需要的 .如果您正在使用,或者升级到OOo 3.3,则可以使用此选项 .
标记您想要影响的所有单元格,然后选择
Format -> Change Case -> Sentence case
并瞧!看看这对你有用吗?你可以写一个小的
gawk
和sed
组合来获得 Headers 案例 -Test:
显然,这不是完美的解决方案,您可能需要根据您拥有或想要的数据行数进行一点调整 . 对
NR%3
的更改应该足够好了 .Perl是一个选择吗? CPAN存档中有一个名为Spreadsheet::WriteExcel的模块,它也可以处理OpenOffice电子表格 .
您基本上是在电子表格中读取,搜索单元格,修改所需的单元格,然后使用修改后的数据创建 new 电子表格 . 您无法直接修改Excel电子表格 . 我不知道这是否适用于OpenOffice文档 .
我之前用过这个来读写Excel电子表格,但那是不久之前 . 但是,此模块可以处理您的情况,而无需先以CSV格式保存电子表格 .
你可以用python或任何其他语言做一些非常狡猾的事情 .
这假设没有任何字段用引号括起来,因为它只会在逗号后面包含所有内容 .
如果做不到这一点,你会想要实际使用csv库 .
我碰巧做了这个任务 . 您必须安装Spreadsheet::ParseExcel和Spreadsheet::WriteExcel模块 .