读写Excel文件C#

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一样是额外的开销。