使用C#从Excel电子表格读取/写入

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

我甚至不知道从哪里开始。 如果有人能告诉我要引用哪个程序集,也许可以指向一个网站或一本书,其中涵盖了通过C#程序写入/读取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互操作库: http : //msdn.microsoft.com/en-us/library/microsoft.office.interop.excel%28v=office.11​​%29.aspx

这个特殊的function在.NET中被称为“Excel自动化”,您可以使用C#来操作电子表格。

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

问候,安迪。

取决于所需的复杂程度:

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

你为什么不创build一个csv文件,将其保存为xls。 本土的excel是必须的吗?

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

我还没有设法find任何好的开源项目,但是,可以推荐GemBox的电子表格API作为一个完善的商业select(加上他们有一个基本的免费版本 ,很好的testing它)。 这种方法的一个主要优点是它是100%的托pipe代码,所以使部署更加整洁。

如果有一个预算,你愿意花在图书馆上,这个select很可能是下降的!