【问题标题】:How to export a CSV to Excel using Powershell more than 65536 rows (and 48 columns)如何使用 Powershell 将 CSV 导出到 Excel 超过 65536 行(和 48 列)
【发布时间】:2016-01-27 16:38:19
【问题描述】:

我正在使用此处找到的代码 - How to export a CSV to Excel using Powershell

但是,当我尝试转换具有 302,123 行(和 48 列)的文件时,它最多只能转换 65536 行。有没有办法转换整个文件?我读到这是一个 excel 2003 问题。我不知道如何让它在 2007 年及更高版本中转换...

【问题讨论】:

  • CSV 文件的最大行数没有限制。您遇到的唯一问题是导入 Excel 时,它确实对行数上限有限制。你具体想做什么?
  • 由于使用的内存较少,将 csv 文件转换为 .xlsx 文件。大约 1000 行的文件是 936kb。将其转换为 .xlsx 使其大小为 323kb。具有 302,123 行的文件约为 356mb。如何将其转换为 .xlsx 并保留所有数据?如果我尝试使用 excel gui 打开 csv 文件,则会出现错误提示数据太大...
  • 将具有数十万行和数百 MB 大小的 CSV 转换为 Excel 工作簿是疯狂的。将数据保存为 CSV。如果空间有限(最近的 Excel 版本在技术上做同样的事情),请将其压缩到 zip 存档中。或者将 CSV 文件导入到实际的数据库中。
  • 维基百科这样说:“65536 是 Excel 97、Excel 2000、Excel 2002 和 Excel 2003 支持的最大电子表格行数(Excel 2007、2010 和 2013 支持 1,048,576 行 (2^20)) . 大于 65536 行的文本文件无法导入这些版本的 Excel。"因此,您至少需要 Excel 2007 才能超过 64K 行。与所有 SO 问题一样,您应该先 google,然后在经过大量搜索后没有得到答案时提​​出问题。
  • 有时必须告知客户,由于技术限制,他们的请求无法以某种方式完成。

标签: powershell powershell-3.0


【解决方案1】:

听起来您已达到 Excel 2007 的内存限制(理论上 2GB 虚拟内存限制),这是一个 32 位进程。

文件大小与内存使用不同,因为 Excel 会尝试将数据转换为行。前任。我刚刚使用您帖子中的链接答案转换了一个 650k 行的 CSV 文件(15MB),我的 Excel 2013 64 位在完成之前至少达到了 70-80MB 内存。想象一下您的 350+ MB CSV 文件。

如果您确实需要将这么多行转换为 excel 文档,您应该使用 64 位 Office 2010 或更高版本的计算机。

就我个人而言,我会为这么多数据推荐一个 SQL 数据库。

【讨论】:

  • 谢谢,我刚刚找到了将文件拆分为单独文件的解决方案(因为不能选择升级或使用其他工具)。我也向客户推荐了这个,但是由于担心安全问题、成本和学习新东西的时间,在这家公司获得任何东西(甚至是免费的并带有 Microsoft 的印章)都被视为一个大问题。提示,我什至不能使用 notepad++,也没有管理员权限自行安装。
猜你喜欢
  • 2013-07-15
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 2012-06-08
  • 2023-02-19
  • 1970-01-01
相关资源
最近更新 更多