我需要制作一个程序,将某些数据写入Excel电子表格。一些基本的名字,姓氏,电话号码,每行的电子邮件以及每个类别在自己的专栏中。使用C#从Excel电子表格读取/写入#
我甚至不知道从哪里开始。如果有人可以告诉我要引用哪个程序集,也许可以指向一个网站或一本涵盖通过C#程序写入/读取Excel电子表格数据的书籍,这将非常棒。
非常感谢。
我需要制作一个程序,将某些数据写入Excel电子表格。一些基本的名字,姓氏,电话号码,每行的电子邮件以及每个类别在自己的专栏中。使用C#从Excel电子表格读取/写入#
我甚至不知道从哪里开始。如果有人可以告诉我要引用哪个程序集,也许可以指向一个网站或一本涵盖通过C#程序写入/读取Excel电子表格数据的书籍,这将非常棒。
非常感谢。
这个特殊功能在.NET中称为“Excel自动化”,您可以使用C#来操作电子表格。
一个很好的起点将是, http://support.microsoft.com/kb/302084#top
问候, 安迪。
你为什么不创建一个csv文件,将它保存为xls。本土的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
正如cherhan所说,Excel自动化是标准的微软方法来编程创建电子表格。这种方法的缺点是它使用了一个COM互操作层,因此需要运行代码的每个服务器都使用Excel(和许可证)。
我还没有设法找到任何更好的开源项目,但是,可以推荐GemBox's spreadsheet API's作为一个成熟的商业选项(外加一个基本的free version,很适合测试它)。这种方法的一个主要优点是它是100%的托管代码,因此使部署更加整洁。
如果您愿意花钱购买图书馆的预算,选择的可能性就会降低!
谢谢大家,这让我开始了。 – Aaron 2011-03-17 00:49:36