OLEDB Excel文件格式

时间:2013-07-15 17:06:32

标签: c# excel oledb oledbconnection oledbdataadapter

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列具有适当的宽度。换句话说,我希望得到更宽的列,有时甚至比写入列名所需的空间更宽。如何调整列的大小?

2 个答案:

答案 0 :(得分:0)

ACE驱动程序无法控制Excel显示值的方式。如果要控制单元格格式,则需要使用OpenXML SDK,第三方加载项(如jetCell)或使用主互操作程序集的Excel自动化,但您可能不需要想要选择最后一个选项。

答案 1 :(得分:0)

填充Excel后,编写一个方法来自动调整列宽,或者在代码中将它们显式设置为您想要的任何内容。你需要使用Excel Interop,从我听到的,它是C#的痛苦。但是,这是一个非常简单的任务,我怀疑在C#中不会有什么大不了的。我对Excel自动化的经验完全在于vb。这就是我要做的事情(我不喜欢在我的应用程序中使用第三方任何东西)

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