發信人bluela.bbs@ptt.cc (Orz),
看板C_Sharp
標 題Re: [問題] 請教一個datagridview跟excel的問題
發信站批踢踢實業 (Mon Jun 22 11:05:51 2009)
轉信站ptt2!news.ntu!ptt
: if (saveFileDialog1.ShowDialog() == DialogResult.OK)
: {
: Excel.ApplicationClass ExcelApp = new
: Excel.ApplicationClass();
: ExcelApp.Application.Workbooks.Add(Type.Missing);
:
: for (int i = 0; i < dataGridView1.Rows.Count; i++)
: {
: DataGridViewRow row = dataGridView1.Rows[i];
: for (int j = 0; j < row.Cells.Count; j++)
: {
: ExcelApp.Cells[i + 1, j + 1] = row.Cells[j].ToString();
:
: }
: }
: ExcelApp.ActiveWorkbook.SaveCopyAs(saveFileDialog1.FileName);
: ExcelApp.ActiveWorkbook.Saved = true;
:
: ExcelApp.Quit();
: ------------------------------------------------------------------------------
: 但是儲存之後在excel的cell中
:
: 出現的卻是DataGridViewTextBoxCell { ColumnIndex=0, RowIndex=0 }
:
: 請問該如何修正?我是用VS2008 謝謝
--------------------------------------------------------------------------------
: → pico2k:在ExcelApp.Cells[i + 1, j + 1]這一行下斷點... 06/19 12:35
: → pico2k:i,j請在前面宣告 06/19 12:36
抱歉 看的不是很懂 請問斷點是指?
i,j在前面宣告 是指不要在for loop時才宣告嗎?@@
: 推 Cloud:沒用過,不過看網路上的範例,好像要取得先取得workbook 06/19 13:33
: → Cloud:http://tinyurl.com/nfchlz 對照一下吧~~ 06/19 13:33
: → O2000:ExcelApp.C... = row.Cells[j].Value.ToString(); 06/22 10:30
ExcelApp.Cells[i + 1, j + 1] = row.Cells[j].ToString();
改成 ExcelApp.Cells[i + 1, j + 1] = row.Cells[j].Value.ToString();
在執行時會在這一行出現
"其他資訊:並未將物件參考設定為物件的執行個體"
請問我遺漏了什麼?看了很久 不是很明白
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.20.170.237
→ Cloud:可以去參考別人的程式呀..總比你看不明白的好.... 06/22 19:36
→ bluela:自問自答 因為datagridview的cell中有null 謝謝大家! 06/23 00:36