我需要製作一個程序,將某些數據寫入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