如何使用 bash 脚本从许多 excel/Libre Office Calc 表中提取数据?
Posted
技术标签:
【中文标题】如何使用 bash 脚本从许多 excel/Libre Office Calc 表中提取数据?【英文标题】:How to extract data with bash script from many excel/Libre Office Calc sheets? 【发布时间】:2019-08-05 09:59:40 【问题描述】:我有一个关于 execl 和/或 LibreOffice Calc 的问题。
我们可以根据需要在 excel 和 LibreOffice Calc 上创建许多工作表:
在 sheet1 上,我有 2 列:
Column 1 Column2
Monday Monday
Tuesday Tuesday
Wednesday Wednesday
Thursday Thursday
Friday Friday
Saturday Saturday
Sunday Sunday
如果我想提取第一列以将它们重定向到 csv 文件,我可以这样做:
cat excel_file | awk -F',' 'print $1' > my_csv.csv
但是,我在表 2 中有:
Column 1 Column2
banana banana
apple apple
orange orange
lemon lemon
cherry cherry
strawberry strawberry
melon melon
有可能使用 bash/awk 脚本/命令提取:sheet1 中的第一列和 sheet2 中的第二列?
最后,csv 看起来像:
Column 1 Column2
Monday banana
Tuesday apple
Wednesday orange
Thursday lemon
Friday cherry
Saturday strawberry
Sunday melon
这个想法是能够使用 bash 或 awk 一次在不同的工作表中提取我需要的列...
你有什么想法吗?
【问题讨论】:
另一种方法是在 Excel 中编写一个宏以将您想要的数据准确提取到另一个页面(但这将只是 M/S),或者编写另一个页面来整理您想要的数据并将该页面导出为 CSV? 您是说可以使用cat | awk
从.xls
、.xlsx
或.sxc
文件中提取数据吗?我发现这种说法令人惊讶,因为 Excel 和 Calc 文件不是纯文本格式。
【参考方案1】:
您只能将“当前工作表”保存为 csv,因此您必须将每个工作表保存为单独的文件。
然后在 unix 中,您可以使用 paste
将两个文件按列连接在一起。
【讨论】:
您好!我知道这种方式,但是如果我有 20 张纸,那就很复杂了。非常浪费时间,这就是为什么我问是否可以使用 Bash/awk 脚本 但是您的第一个问题是如何将文件取出。 CSV 不会完成这项工作。如果您想使用 CSV 以外的其他内容,请更改您的问题以明确说明?以上是关于如何使用 bash 脚本从许多 excel/Libre Office Calc 表中提取数据?的主要内容,如果未能解决你的问题,请参考以下文章