Read and Write Excel Files C#
是否有任何易于实现的库,可用于读取Excel文件,并可在以后创建它们?这是我最好的赌注吗?
http://support.microsoft.com/kb/302084
尝试此操作:http://epplus.codeplex.com
0如果您愿意提交到更高版本的Excel(2007+),也可以查看OpenXML SDK。它是免费的,不会将您与将要在其上运行的计算机上安装MS Office联系在一起,并且在如何在线使用它(包括来自OpenXML团队的博客)方面有相当多的可用资源。
有Excel软件包增强版:
http://epplus.codeplex.com/
尽管只在XLSX上工作,但Office2003还是在骑车外出。
我使用过OLEDB、Interop,刚刚开始使用EPPLUS。到目前为止,epplus被证明是最简单的。http://epplus.codeplex.com/
但是,我刚刚发布了一个关于epplus的问题,但是我发布了一些代码,您可以使用它们作为参考。
C EPPLUS错误删除部分:绘图形状
您可以使用Excellibrary,尽管它只适用于.xls,它是2003格式的
The aim of this project is provide a native .NET solution to create, read and modify Excel files without using COM interop or OLEDB connection.
我有机会使用epplus,非常好:),它适用于2007/2010年使用的新Excel格式.xlsx。
EPPlus is a .net library , you can read and write to excel files ,create charts ,pictures ,shapes... and Much more
也可以看看这个帖子
我喜欢使用ExceldataReader进行阅读,使用前面提到的epplus进行写作。这是一个例子。
下面是一个阅读示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read); // Reading from a binary Excel file ('97-2003 format; *.xls) // IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream); // Reading from a OpenXml Excel file (2007 format; *.xlsx) IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); // DataSet - The result of each spreadsheet will be created in the result.Tables DataSet result = excelReader.AsDataSet(); // Free resources (IExcelDataReader is IDisposable) excelReader.Close(); var cdm = new ValueSetRepository(); for (int i = 0; i < result.Tables.Count; i++) { // CHECK if tableNames filtering is specified if (tableNames != null) { // CHECK if a table matches the specified tablenames var tablename = result.Tables[i].TableName; if (!tableNames.Contains(tablename)) { continue; } } var lookup = new ValueSetLookup(); lookup.CmsId = result.Tables[i].Rows[2][0].ToString(); lookup.NqfNumber = result.Tables[i].Rows[2][1].ToString(); lookup.Data = new List<ValueSetAttribute>(); int row_no = 2; while (row_no < result.Tables[i].Rows.Count) // i is the index of table // (sheet name) which you want to convert to csv { var currRow = result.Tables[i].Rows[row_no]; var valueSetAttribute = new ValueSetAttribute() { Id = currRow[0].ToString(), Number = currRow[1].ToString(), tName = currRow[2].ToString(), Code = currRow[7].ToString(), Description = currRow[8].ToString(), }; lookup.Data.Add(valueSetAttribute); row_no++; } cdm.AddRecord(lookup); |
我使用了Excellibrary,效果非常好!(到目前为止,它支持Excel2003或更低版本)。
http://code.google.com/p/excellibrary网站/
根据此网站,您需要包含对Microsoft Excel 12.0对象库的引用。从那里,您需要做一些事情来打开文件。网站上有一个代码示例。
PS-很抱歉,它没有太详细,但我找不到包含更多详细信息的Microsoft Office开发人员参考资料。
您可以使用vba,也可以使用filehelpers提供的免费库。如果你打算买一些商业解决方案,我推荐Aspose
我曾经工作过的一家公司对此做了大量的研究,并认为软工匠的产品是他们的最佳选择:公务撰稿人
我一直觉得奇怪的是,对Excel读写的支持有多弱。我敢肯定,如果你使用微软的程序库,你必须安装Excel,这和OfficeWriter一样是额外的开销。