台灣最大程式設計社群網站
線上人數
1006
 
會員總數:243984
討論主題:188418
歡迎您免費加入會員
討論區列表 >> C# >> Excel 匯入 Datagridview 欄位值皆為空白
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Excel 匯入 Datagridview 欄位值皆為空白
價值 : 30 QP  點閱數:158 回應數:2

樓主

wei-wei
門外漢
0 2
40 2
發送站內信

小弟我想要把Excel資料匯入到Datagridview,欄位會因為Excel內資料多寡而變化,但是欄位值皆為空白。請問是哪邊出錯了?
參考:https://www.blueshop.com.tw/board/FUM20050124192253INM/BRD20160501205934A84.html

小弟程式內容:
private void btnLoadFromExcel_Click_Click(object sender, EventArgs e)
{
OpenFileDialog opd_open = new OpenFileDialog();
opd_open.Filter = "Excel Documents (*.xls) |*.xls";
opd_open.Title = "Select a Excel File";

if (opd_open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//File Path
string path = opd_open.FileName;
string oleStr = GetOleStr(ref path);



string OutputSheet = "Select * From [工作表1$]";//表格名稱=要填入Excel上Sheet的名稱

textBox1.Text = oleStr ;

OleDbConnection ExcelConnection = new OleDbConnection(oleStr);

try
{
ExcelConnection.Open();//打開檔案連結

//讀取output
OleDbCommand ExCommendOut = new OleDbCommand(OutputSheet, ExcelConnection);
OleDbDataAdapter dataAdapterOut = new OleDbDataAdapter(ExCommendOut);
DataTable dTableOut = new DataTable();
dataAdapterOut.Fill(dTableOut);
dataGridView1.DataSource = null;
dataGridView1.DataSource = dTableOut;

//自動調整DataGridView欄寬
//dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
//dTableOut.Dispose();
//dataAdapterOut.Dispose();

//關閉檔案連結,釋放記憶體,若不關閉則系統會占用資源,匯入成功時一定要關閉
ExCommendOut.Dispose();
ExcelConnection.Close();
ExcelConnection.Dispose();
}
catch (Exception ex)
{
MessageBox.Show("檔案讀取失敗!\n" + ex.Message, "資料處理錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
}


}

}
private string GetOleStr(ref string path)
{
//isXls = true then file is Excel 2003
bool isXls = path.EndsWith(".xls");
string oleStr = string.Empty;

if (isXls)
{
//2003 OLE
oleStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=NO;IMEX=0;'", path);
}
else
{
//2007 OLE
oleStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=NO;IMEX=0;'", path);
}

return oleStr;
}

輸出:


點擊Load From Excel與選擇Excel檔案:

結果:

搜尋相關Tags的文章: [ Exce ] , [ Datagridview ] , [ 欄位值空白 ] ,
本篇文章發表於2019-01-30 11:34
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

P陳
檢舉此回應
這要分成二階段來查
1.讀進來的資料正常嗎? (可以看得到嗎?)

2.放到表單時不正常?

請先查是那個階段出錯了
本篇文章回覆於2019-01-30 18:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

wei-wei
檢舉此回應
經過查證是因為我在datagridview的選擇資料來源選擇了dataset,所以匯入excel時資料沒有填上。
把它改成無後可以動作了。



本篇文章回覆於2019-02-12 14:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.