台灣最大程式設計社群網站
線上人數
1013
 
會員總數:240686
討論主題:186544
歡迎您免費加入會員
討論區列表 >> C# >> WPF DataGrid 匯出資料到 Excel
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
WPF DataGrid 匯出資料到 Excel
價值 : 20 QP  點閱數:200 回應數:6

樓主

hkjlg
門外漢
0 2
28 2
發送站內信

匯資料到Excel時19筆資料是正常的,但一超過20筆資料時就會彈出

System.NullReferenceException: '並未將物件參考設定為物件的執行個體。'

b 為 null。


private void Button_Click_6(object sender, RoutedEventArgs e)
{

Excel.Application excel = new Excel.Application();
excel.Visible = true;
Workbook workbook = excel.Workbooks.Add(System.Reflection.Missing.Value);
Worksheet sheet1 = (Worksheet)workbook.Sheets[1];

for (int j = 0; j < Table.Columns.Count; j++)
{
Range myRange = (Range)sheet1.Cells[1, j + 1];
sheet1.Cells[1, j + 1].Font.Bold = true;
sheet1.Columns[j + 1].ColumnWidth = 15;
myRange.Value2 = Table.Columns[j].Header;
}
for (int i = 0; i < Table.Columns.Count; i++)
{ //www.ahmetcansever.com
for (int j = 0; j < Table.Items.Count; j++)
{
TextBlock b = Table.Columns[i].GetCellContent(Table.Items[j]) as TextBlock;
Microsoft.Office.Interop.Excel.Range myRange = (Microsoft.Office.Interop.Excel.Range)sheet1.Cells[j + 2, i + 1];
myRange.Value2 = b.Text;
}
}
}

搜尋相關Tags的文章: [ DataGrid ] , [ Excel ] , [ WPF ] , [ C# ] ,
本篇文章發表於2017-08-22 15:16
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

春天
檢舉此回應
TextBlock b = Table.Columns[i].GetCellContent(Table.Items[j]) as TextBlock;
當 b 的型別不為TextBlock 時會是null
myRange.Value2 = b.Text; 此時調用屬性b.Text就會發生System.NullReferenceException: '並未將物件參考設定為物件的執行個體。
本篇文章回覆於2017-08-22 15:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

春天
檢舉此回應
修正一下
當Table.Columns[i].GetCellContent(Table.Items[j]) 的型別不為TextBlock 時 b 會是null
本篇文章回覆於2017-08-22 15:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

hkjlg
檢舉此回應
可是目前我看得出來的就只是資料匯出的上限 因為我剛剛試了 改成

if(b==null)
{
myRange.Value2 = "N/A";
}
else
{
myRange.Value2 = b.Text;
}

然後 20第筆資料以下的全都變成N/A了
本篇文章回覆於2017-08-22 16:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

小魚
檢舉此回應
你先看 Table.Items[j] 的內容
再看 Table.Columns[i].GetCellContent(Table.Items[j]) 的內容
找看看是什麼問題...
還有 Table.Items.Count 真的是你要的值嗎?
本篇文章回覆於2017-08-22 19:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

hkjlg
檢舉此回應
是我想要的值,但一到某一筆資料後就不行了
本篇文章回覆於2017-09-01 11:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

小魚
檢舉此回應
在出錯的地方仔細看,
一定室友哪裡有問題,
她似乎是找不到那個控制項。
本篇文章回覆於2017-09-02 00:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

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