小编典典

导入和导出 Excel - 什么是最好的库?

all

在我们使用 C# 编写的 ASP.NET 应用程序之一中,我们获取某个数据集合(SubSonic 集合)并将其导出到 Excel。我们还想以特定格式导入
Excel 文件。我正在寻找可以用于此目的的库。

要求:

  • Excel 2007 文件(Excel 2003 是否支持超过 64k 行?我需要的不止这些。)
  • 不需要服务器上的 Excel
  • 采用类型化的集合,如果可以,尝试将数字字段作为数字放入 Excel 中。
  • 适用于大文件(100k 到 10M) - 足够快。
  • 导出 GUID 时不会崩溃!
  • 不花一大笔钱(没有像 aspose 这样的企业库)。免费总是很棒,但可以是一个商业图书馆。

你推荐什么图书馆?您是否将其用于大量数据?还有其他解决方案吗?

现在,我正在使用一个简单的工具来生成稍后由 Excel 加载的 HTML,但是我失去了一些功能,而且当我们加载它时 Excel
会抱怨。我不需要生成图表或类似的东西,只需导出原始数据。

我正在考虑平面 CSV 文件,但 Excel 是客户要求。如果我有一个工具可以与 Excel 相互转换,我可以直接使用 CSV。鉴于 Excel 2007
是一种基于 xml(和压缩)的文件格式,我猜这种库应该很容易找到。但是,对我来说最重要的是您的评论和意见。


编辑:具有讽刺意味的是,在我看来,按照投票最多的答案,最好的 Excel 导入和导出库根本没有导出。并非所有情况都如此,但它适用于我的情况。XLS
文件仅支持 64k 行。XLSX 最多支持 1M。我尝试过的免费库的性能很差(当你有 200k
行时加载一行需要一秒钟)。我没有尝试过付费的,因为我觉得当您需要的只是快速的 XLSX<->CSV 转换程序时,它们提供的价值被高估了。


阅读 72

收藏
2022-08-03

共1个答案

小编典典

如果只是因为您对代码有最大的控制权,我将投入使用平面 csv 文件。只需确保您逐行读取并一次处理它们(将文档读取到最后并拆分会占用您所有的内存 -
与写入相同,将其流出)。

是的,用户必须先在 Excel 中保存为 CSV,然后才能处理它,但也许可以通过培训和在页面上提供明确的说明来克服这个限制?

最后,当您导出给客户时,如果您将 mime 类型设置为 text/csv,Excel 通常会映射到该类型,因此在用户看来它是“一个 Excel 文件”。

2022-08-03