当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《导入和导出Excel-什么是最好的库?》经验,为你挑选了8个好方法。

在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转换例程时,我觉得它们的价值过高.



1> cdonner..:

自从我的原始答案以来,我发现了Open XML SDK.它为电子表格对象提供了强类型类,并且似乎相当容易使用.我打算在我的一个项目中使用它来报告.唉,版本2.0不应该发布到2009年底或2010年.



2> tsimon..:

如果只是因为你对代码有了最大的控制权,那么我将把手放在平坦的csv文件中.只要确保你读入行并一次处理一行(将文档读到最后并且拆分将占用你所有的内存 - 与写入相同,将其流出).

是的,用户必须先将其保存为Excel中的CSV,然后才能进行处理,但也许可以通过培训并在页面上提供清晰的说明来克服此限制?

最后,当您导出到客户时,如果将mime类型设置为text/csv,则Excel通常会映射到该类型,因此用户看起来是"Excel文件".


CSV有它的位置,但海报询问Excel,我认为他必须要Excel,而不是CSV.
导出像0345这样的列时,CSV会下降.Excel会自动将其修剪为345.当前导数字很重要时,这一点都没有用.
我也尝试过CSV方法,但它有几个问题.例如,如果要在单元格中包含多行文本,该怎么办?我无法使Excel导入这样的CSV.
"另存为"?不.如果客户使用的是Excel,那么他们为什么要保存第二个更有限的文件来与您的产品进行交互?
带有excel文件扩展名的HTML表格看起来效果很好......它会以一种特殊的方式解析一些CSS,例如格式化多行,颜色等等 - 而无需实际创建本机Excel文件

3> 小智..:

新版本的ExcelPackage在这里 http://EPPlus.codeplex.com

因为我的应用程序应该将一些数据导出到excel-template 2007,所以我仍在使用导出到excel函数

这个项目对我来说似乎很好,开发人员对错误和问题非常敏感.


现在看来它已经在LGPL下获得许可,因此您可以将其用作没有copyleft限制的链接库.
工作正常,但它是根据GPL许可的 - 例如,任何使用它的软件也必须以简单的源代码提供....并不总是一个好的选择......

4> Druid..:

我一直在使用ClosedXML,效果很好!

ClosedXML使开发人员可以更轻松地创建Excel 2007/2010文件.它提供了一种很好的面向对象的方式来操作文件(类似于VBA),而无需处理XML文档的麻烦.它可以被任何.NET语言使用,如C#和Visual Basic(VB).


我喜欢名字中的讽刺......

5> Joe Erickson..:

SpreadsheetGear for .NET读取和写入CSV/XLS/XLSX并执行更多操作.

你可以看到用C#和VB源代码活ASP.NET样品这里并下载免费试用这里.

当然我认为SpreadsheetGear是在ASP.NET中导入/导出Excel工作簿的最佳库 - 但我有偏见.您可以在本页的右侧看到我们的一些客户所说的内容.

免责声明:我拥有SpreadsheetGear LLC



6> 小智..:

NPOI For Excel 2003开源 http://www.leniel.net/2009/07/creating-excel-spreadsheets-xls-xlsx-c.html



7> Duncan..:

我过去曾经使用过Flexcel,它很棒.但这更像是以编程方式创建和更新excel工作表.



8> cdonner..:

CSV导出简单,易于实现且速度快.但是,有一个值得注意的潜在问题.Excel(最多2007年)不保留CSV文件中的前导零.这将使邮政编码,产品ID和包含数值的其他文本数据混乱.有一个技巧可以使Excel正确导入值(使用分隔符和带有=符号的前缀值,如果我没记错的话,例如..,="02052",......).如果您的用户将使用CSV执行后处理任务,则需要注意他们需要将格式更改为XLS,而不是将文件保存回CSV.如果他们这样做,领先的零将永远失去.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有