我需要创建一个将一些数据写入excel电子表格的程序。根据名字,姓氏,电话号码,每行的电子邮件以及每个类别在其自己的列中的基本内容。
我甚至不知道从哪里开始。如果有人可以告诉我哪些程序集可以参考,也许可以指向一个网站或一本书,其中包括通过C#程序从excel电子表格中写入/读取数据,这将非常棒。
非常感谢。
答案 0 :(得分:7)
添加对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
答案 1 :(得分:4)
这个特殊功能在.NET中称为“Excel Automation”,您可以使用C#来操作电子表格。
一个很好的起点, http://support.microsoft.com/kb/302084#top
此致 安迪。
答案 2 :(得分:1)
取决于所需的复杂程度:
答案 3 :(得分:0)
为什么不创建一个csv文件,将其另存为xls。原生优秀是必须的吗?
答案 4 :(得分:0)
正如cherhan所提到的,Excel自动化是Microsoft以编程方式创建电子表格的标准方法。这种方法的缺点是它使用了COM互操作层,因此需要为运行代码的每个服务器提供Excel(和许可证)。
我没有找到任何更好的开源项目来做这件事,但是,可以推荐GemBox's spreadsheet API's作为一个制作精良的商业选项(加上他们有一个基本free version,好用于测试)。这种方法的一个主要优点是它是100%托管代码,因此使部署更加整洁。
如果您愿意花在图书馆的预算上,可能会选择这个选择!