2010-07-14 75 views
0

我已經編寫了一個程序來使用OLEDB在C#中生成Excel工作簿。大多數工作,但我注意到的一件事是,如果我只輸出1列,它會在標題後留下一個空行。奇怪的OLEDB Excel導出問題

任何想法?

回答

0

下面是我正在使用的一些示例代碼,但我沒有看到問題。我正在創建一個新的工作簿/電子表格,然後只填充一行和一列。

你可以發佈你的代碼,我們可以看到有什麼不同嗎?

 static void Main(string[] args) 
    { 
     string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\SOTest2.xls;Extended Properties=""Excel 8.0;HDR=NO;"""; 
     DbProviderFactory factory = 
      DbProviderFactories.GetFactory("System.Data.OleDb"); 

     using (DbConnection connection = factory.CreateConnection()) 
     { 
      connection.ConnectionString = connectionString; 
      using (DbCommand command = connection.CreateCommand()) 
      { 
       connection.Open(); //open the connection 

       command.CommandText = "CREATE TABLE [Sheet1] (F1 number);"; 
       command.ExecuteNonQuery(); //create the sheet before doing any inserts 

       command.CommandText = "INSERT INTO [Sheet1$] (F1) VALUES(4)"; 
       command.ExecuteNonQuery(); //now insert a row into the sheet 
      } 
     } 
    } 

我還沒有看到一個空行,如果我將單行多列:

command.CommandText = "CREATE TABLE [Sheet1] (F1 number, F2 char(255), F3 char(128))"; 
command.ExecuteNonQuery(); //create the sheet before doing any inserts 
command.CommandText = "INSERT INTO [Sheet1$] (F1, F2, F3) VALUES(4,\"Tampa\",\"Florida\")"; 
command.ExecuteNonQuery(); //now insert a row into the sheet 

希望這有助於!