使用C#读写Excel电子表格

3

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

我甚至不知道从哪里开始。如果有人能告诉我应该引用哪些程序集并指向一个网站或一本书,介绍如何通过C#程序读写Excel电子表格,那就太好了。

非常感谢。

5个回答

8

添加对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

该链接提供了关于Excel交互库的详细信息。

谢谢大家,这让我有了一个好的开始。 - Aaron

4

1

根据所需的复杂程度:

  • 编写逗号分隔值(CSV)文本文件。Excel将打开它,但您将不会获得任何格式。
  • 将HTML表格写入文件并将文件命名为filename.xls。
  • Excel可以打开的格式编写一个XML文件。
  • 直接调用Excel并让它构建电子表格。(请参见cherhan的答案)

0
为什么不直接创建一个 CSV 文件,将其保存为 xls 格式。原生 Excel 是必须的吗?

0

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

我还没有找到任何更好的开源项目来完成这项工作,但是可以推荐GemBox的电子表格API作为一个制作精良的商业选项(此外,他们还有一个基本的免费版本,适合测试)。这种方法的一个主要优点是它是100%托管代码,因此使部署更加整洁。

选择可能取决于您是否愿意在库上花费预算!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接