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 の列に適切な幅を持たせたいということです。言い換えれば、列の名前を書くために必要なスペースよりも広い列を取得したい場合があります。列のサイズを変更するには?

4

2 に答える 2

0

ACE ドライバーは、Excel が値を表示する方法を制御できません。セルの書式設定を制御したい場合は、OpenXML SDK 、 jetCellのようなサード パーティ アドイン、または Primary Interop Assembly を使用した Excel Automation を使用する必要がありますが、最後のオプションを使用したくない可能性があります。 .

于 2013-07-15T18:53:09.187 に答える
0

Excel にデータを入力した後、列幅を自動調整するメソッドを記述するか、コードで明示的に設定します。Excel Interop を使用する必要がありますが、私が聞いたところによると、C# では面倒です。ただし、これは非常に単純なタスクであり、C# では大したことではないと思います。Excel オートメーションに関する私の経験は、vb だけです。これが私がすることです(ただし、アプリでサードパーティを使用するのは好きではありません)

Excel 相互運用オブジェクトを介して列のサイズを自動調整するにはどうすればよいですか?

于 2013-07-15T20:40:57.247 に答える