【问题标题】:To read/write from excel spreadsheet using C#使用 C# 从 excel 电子表格中读取/写入
【发布时间】:2017-04-20 15:42:58
【问题描述】:

我需要编写一个将一些数据写入 Excel 电子表格的程序。一些基本的东西,比如名字、姓氏、电话号码、每行的电子邮件,每个类别都在自己的列中。

我什至不知道从哪里开始。如果有人能告诉我要参考哪些程序集,并可能将我指向一个网站或一本书,该网站或书籍涵盖了通过 C# 程序从 excel 电子表格中写入/读取数据,那就太好了。

非常感谢。

【问题讨论】:

    标签: c# database excel


    【解决方案1】:

    添加对 Microsoft.Office.Interop.Excel 的引用。

    假设您在某处拥有该数据的存储库,并且您的模型看起来像

    class Contact
    {
        public string Firstname { get; set; }
        public string Lastname { get; set; }
        public string Email { get; set; }
        public string PhoneNumber { get; set; }
    }
    

    你可以像这样将它导入到excel中

    Application excelapp = new Application();
    excelapp.Visible = true;
    
    _Workbook workbook = (_Workbook)(excelapp.Workbooks.Add(Type.Missing));
    _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet;
    
    worksheet.Cells[1, 1] = "First Name";
    worksheet.Cells[1, 2] = "Last Name";
    worksheet.Cells[1, 3] = "Email";
    worksheet.Cells[1, 4] = "Phone Number";
    
    int row = 1;
    
    foreach (var contact in contacts)
    {
        row++;
    
        worksheet.Cells[row, 1] = contact.Firstname;
        worksheet.Cells[row, 2] = contact.Lastname;
        worksheet.Cells[row, 3] = contact.Email;
        worksheet.Cells[row, 4] = contact.PhoneNumber;
    }
    
    excelapp.UserControl = true;
    

    您可以在此处阅读有关 Excel 互操作库的更多信息:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel%28v=office.11%29.aspx

    【讨论】:

    • 谢谢大家,这让我开始了。
    【解决方案2】:

    此特定功能在 .NET 中称为“Excel 自动化”,您可以在其中使用 C# 来操作电子表格。

    一个好的起点是, http://support.microsoft.com/kb/302084#top

    问候, 安迪。

    【讨论】:

      【解决方案3】:

      取决于所需的复杂程度:

      • 编写逗号分隔值 (CSV) 文本文件。 Excel 会打开它,但您不会得到任何格式。
      • 将 HTML 表格写入文件并将文件命名为 filename.xls。
      • format that Excel can open 中写出一个 XML 文件。
      • 直接调用 Excel 并获取它来构建电子表格。 (见 cherhan 的回答)

      【讨论】:

        【解决方案4】:

        为什么不直接创建一个 csv 文件,将其保存为 xls。必须使用原生 excel 吗?

        【讨论】:

          【解决方案5】:

          正如 cherhan 所述,Excel 自动化是标准的 Microsoft 以编程方式创建电子表格的方法。这种方法的缺点是它使用了 COM 互操作层,因此运行代码的每台服务器都需要 Excel(和许可证)。

          我还没有找到任何更好的开源项目来做这件事,但是,可以推荐 GemBox's spreadsheet API's 作为一个制作精良的商业选项(另外他们有一个基本的 free version,非常适合测试它) .这种方法的一个主要优点是它是 100% 托管代码,因此使部署更加整洁。

          选择可能取决于您是否愿意花在图书馆上的预算!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-04-05
            • 2017-05-18
            • 1970-01-01
            • 2011-10-17
            • 2021-12-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多