2013-07-15 222 views
0
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 
       fileName + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMES=1;\""; 

using (OleDbConnection conn = new OleDbConnection(strConn)) 
{ 
    conn.Open(); 
    DataTable dt = dataset.Tables[0]; 
    OleDbCommand cmd = new OleDbCommand(getCreateTableCommand(dt), conn); 
    cmd.ExecuteNonQuery(); 

    conn.Close(); 
} 

/*method - getCreateTableCommand returns something like this - 
{CREATE TABLE [Results] ([name1] STRING,[name2] STRING,[name3] STRING,[name4] STRING}*/ 

輸出正常。問題是,我希望excel列具有適當的寬度。換句話說,我想要得到更寬的列,有時甚至會更寬,以便寫出列名的空間。如何調整列的大小?OLEDB Excel文件格式

回答

0

ACE驅動程序無法控制Excel如何顯示值。如果您想要控制單元格格式,您需要使用OpenXML SDK,第三方加載項(如jetCell)或使用主互操作程序集的Excel自動化,但是您可能不想使用最後一個選項。

0

在填充Excel之後,編寫一個方法來自動調整列寬,或者在代碼中將它們明確地設置爲任何你想要的。你需要使用Excel Interop,並且從我聽到的,這是C#中的一個痛苦。但是,這是一個非常簡單的任務,我懷疑在C#中不會有什麼大不了的。我對Excel自動化的經驗完全在於vb。這是我會做的(我不喜歡在我的應用程序中使用第三方任何東西)

How do I auto size columns through the Excel interop objects?