C# 使用C从excel电子表格读/写#

C# 使用C从excel电子表格读/写#,c#,database,excel,C#,Database,Excel,我需要制作一个程序,将一些数据写入excel电子表格。基本的名字、姓氏、电话号码、每行的电子邮件,每个类别都有自己的列 我甚至不知道从哪里开始。如果有人能告诉我要引用哪些程序集,也许能给我指一个网站或一本书,介绍如何通过C#程序从excel电子表格中写入/读取数据,那就太好了 非常感谢。这一特殊功能在.NET中被称为“Excel自动化”,您可以使用C#操作电子表格 一个好的起点是, 问候,, 安迪。为什么不创建一个csv文件,并将其保存为xls。是否必须使用本机excel?取决于所需的复杂程度

我需要制作一个程序,将一些数据写入excel电子表格。基本的名字、姓氏、电话号码、每行的电子邮件,每个类别都有自己的列

我甚至不知道从哪里开始。如果有人能告诉我要引用哪些程序集,也许能给我指一个网站或一本书,介绍如何通过C#程序从excel电子表格中写入/读取数据,那就太好了


非常感谢。

这一特殊功能在.NET中被称为“Excel自动化”,您可以使用C#操作电子表格

一个好的起点是,

问候,,
安迪。

为什么不创建一个csv文件,并将其保存为xls。是否必须使用本机excel?

取决于所需的复杂程度:

  • 编写逗号分隔值(CSV)文本文件。Excel将打开它,但是您不会得到任何格式
  • 将HTML表写入文件,并将文件命名为filename.xls
  • 在文档中写出一个XML文件
  • 直接调用Excel并让它生成电子表格。(见切尔汉的回答)

添加对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互操作库的更多信息:

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

我还没有找到任何优秀的开源项目来做得更好,但是,我可以推荐一个做得很好的商业选项(另外,他们有一个基本的、很好的测试工具)。这种方法的一个主要优点是,它是100%托管代码,因此使部署更加整洁


选择可能取决于你是否愿意在图书馆上花费预算

谢谢大家,这让我开始了。