2015-12-02 69 views
0
private void button1_Click(object sender, EventArgs e) 
     { 
      string constr = ConfigurationManager.ConnectionStrings["db"].ConnectionString; 

      SqlConnection con = new SqlConnection(constr); 
      SqlCommand cmd = new SqlCommand("SELECT * FROM Sheet1$", con); 

      SqlDataAdapter sda = new SqlDataAdapter(); 
      sda.SelectCommand = cmd; 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      //BindingSource bsource = new BindingSource(); 
      //bsource.DataSource = dt; 
      //dataGridView1.DataSource = bsource; 
      //sda.Update(dt); 

      DataSet ds = new DataSet(); 
      ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture; 
      sda.Fill(dt); 
      ds.Tables.Add(dt); 
      ExcelLibrary.DataSetHelper.CreateWorkbook("D:\\ChallanBulkUpload\\ChallanBulkUpload\\ChallanBulkUpload\\UploadFile\\challan.xls", ds); 

     } 
+5

「因爲這個原因,我的代碼不起作用」你得到了什麼錯誤?你有沒有嘗試過批量選擇和插入你的數據? – user1666620

+0

當我點擊按鈕,它會告訴我這個網頁不可用 –

+0

你可以發佈在你點擊按鈕時調用的代碼嗎? –

回答

1

根據我的經驗,使用oledb處理excel文件是有點bug。 我轉而使用OpenXml(http://www.microsoft.com/en-us/download/details.aspx?id=30425)。 或許也可以爲你解決....

更新: 您也可以使用Excel互操作來處理Excel文件(XLS),見https://msdn.microsoft.com/en-us/library/ms173186(v=vs.80).aspx

對於這項工作,Excel有要在安裝系統。

+0

僅供參考:OpenXml無法創建'xls'文件,它只能創建微軟切換到的最新'xlsx'格式,從Office 2003開始。 –

+0

那麼,告訴我該怎麼辦?我想從sql server導出超過100k的數據到帶有標題的excel表。這將是C#windows窗體應用程序在按鈕點擊下。 –

+0

你不是在說爲什麼@Poiter答案對你來說是不夠的。您尚未說明您需要XLS格式,並且未提供任何有關爲何建議的答案不正確的任何反饋。 – PhillipH

相關問題