這是一個非常快速的POC,我寫了3列255個字符200,000次(600,000個單元格)。最終文件在我的機器上以4.85MB進入。
string ExportFile = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Test.xlsx");
string DSN = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES\";", ExportFile);
using (System.Data.OleDb.OleDbConnection Con = new System.Data.OleDb.OleDbConnection(DSN))
{
Con.Open();
using (System.Data.OleDb.OleDbCommand Com = new System.Data.OleDb.OleDbCommand())
{
Com.Connection = Con;
Com.CommandText = "CREATE TABLE [TestSheet] (A1 varChar(255), B1 varChar(255), C1 varChar(255))";
Com.ExecuteNonQuery();
string A1 = new string('A', 255);
string B1 = new string('B', 255);
string C1 = new string('C', 255);
Com.CommandText = string.Format("INSERT INTO [TestSheet] (A1, B1, C1) VALUES ('{0}', '{1}', '{2}')", A1, B1, C1);
for (var i = 1; i <= 200000; i++)
{
Com.ExecuteNonQuery();
}
}
Con.Close();
}
在服務器上我不能肯定所有什麼需要,但你可能必須安裝此:
http://www.microsoft.com/downloads/en/details.aspx?familyid=7554f536-8c28-4598-9b72-ef94e038c891&displaylang=en
您正在寫什麼版本的Excel? 'xls'或'xlsx'? – 2011-02-23 13:49:49
您是否嘗試過使用Excel原生COM API? [鏈接](http://support.microsoft.com/kb/302084) – 2011-02-23 13:50:13
只要它在Excel 2007中以xls或xlsx打開,文件格式並不重要。還沒有嘗試COM API,因爲我認爲需要在服務器上安裝Excel? (不是一個選項) – nzyme 2011-02-23 13:58:55