我需要编写一个程序,将一些数据写入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; }
}
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交互库的详细信息。根据所需的复杂程度:
正如cherhan所提到的,Excel自动化是微软程序创建电子表格的标准方法。这种方法的缺点是它使用了COM互操作层,因此需要为每个运行代码的服务器安装Excel(和许可证)。
我还没有找到任何更好的开源项目来完成这项工作,但是可以推荐GemBox的电子表格API作为一个制作精良的商业选项(此外,他们还有一个基本的免费版本,适合测试)。这种方法的一个主要优点是它是100%托管代码,因此使部署更加整洁。
选择可能取决于您是否愿意在库上花费预算!