使用 Google AppS 脚本将 .csv 文件转换为 .xls

Posted

技术标签:

【中文标题】使用 Google AppS 脚本将 .csv 文件转换为 .xls【英文标题】:Convert .csv file to .xls using Google AppScript 【发布时间】:2018-11-14 09:22:45 【问题描述】:

我有一个用例,我必须获取 BigQuery 结果并将其存储在 excel 文件中。由于默认情况下 BigQuery 没有任何此类规定,因此我正在考虑以 CSV 格式导出查询结果,然后使用 Google AppScript 将其转换为 excel 格式。我们尝试使用 Sheet-js 执行此操作,但它在 AppScript 中不起作用。

我们也尝试使用 Google 电子表格,但似乎每个工作簿有 1000 万个单元格的限制。如果我错了,请纠正我。

有人可以建议我必须采取什么方法来实现这一目标。任何形式的帮助将不胜感激。

谢谢。

【问题讨论】:

Excel 支持打开 CSV 文件,为什么要花这么多精力呢? 由于 XLS 是 Microsoft 专有的二进制格式,试图创建“excel 格式”可能超出了本论坛的大多数参与者的范围。正如@GrahamPolley 提到的,只需使用 Excel 打开 CSV。 values like '00014' to '14' 使用字符串 嗨@GrahamPolley 是的,但是在excel中打开时它会将'00012'之类的值转换为'12'。这是我们出于报告目的而提出的严格要求,因此我们不能使用 .csv。 【参考方案1】:

您描述的行为(将“00012”等值转换为“12”)仅在Open csv 文件时可见!

相反,您可以 Import 将文件中的数据导入 Excel,如果这样做,您就有能力控制这将如何发生

所以,尝试如下步骤(基于我拥有的 Excel 版本 - 你的可能会略有不同)

Open Excel with New Workbook >> Data >> Get Data >> From File >>   
  From Text/CSV >> Select your File & Import >> Edit >> ...  

上一个列表中的最后一个操作将打开 Power Query 编辑器,您可以在其中设置列的类型以及控制许多其他方面

例如 - 右键单击​​列并将类型更改为文本等。

【讨论】:

嗨,米哈伊尔,我知道。但问题是我们需要自动化这个过程并为最终用户提供一个 excel。如何使用代码控制数据值是我卡住的地方。最终用户只对拥有 Excel 感到满意。

以上是关于使用 Google AppS 脚本将 .csv 文件转换为 .xls的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps 脚本 - 转换为 CSV

将 Google Apps 脚本中的 CSV 文件上传到 BigQuery 表 - 行中的恶意逗号

使用Google Apps脚本删除Google表格中的行

Google Bigquery 的 Apps 脚本未知错误

Google Apps 脚本 setTimestamp 到 mysql 数据库

Google Apps 脚本 - 将 gmail 中的数据提取到电子表格中