日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中DataTable使用以及对行与列的赋值

發(fā)布時間:2025/3/19 C# 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中DataTable使用以及对行与列的赋值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

場景

DataTable

DataTable是一個臨時保存數(shù)據(jù)的網(wǎng)格虛擬表(表示內(nèi)存中數(shù)據(jù)的一個表)。

這里用來給DataGridView設(shè)置數(shù)據(jù)源。

效果

?

列屬性

也就是上面第一行顯示的標(biāo)題屬性。

DataTable data = new DataTable(); DataColumn column = new DataColumn(cellValue); data.Columns.Add(column);

行屬性

標(biāo)題下面一行一行的屬性。

? DataRow dataRow = data.NewRow();for (int j = row.FirstCellNum; j < cellCount; ++j){//同理,沒有數(shù)據(jù)的單元格都默認(rèn)是nullif (row.GetCell(j) != null)dataRow[j] = row.GetCell(j).ToString();}data.Rows.Add(dataRow);

實現(xiàn)

這里用讀取Excel并賦值給DataTables然后設(shè)置DataGridView的數(shù)據(jù)源為例。

? ISheet sheet = null;DataTable data = new DataTable();IWorkbook workbook = null;int startRow = 0;try{//獲取文件名,不帶路徑string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);fs = new FileStream(localFilePath, FileMode.Open, FileAccess.Read);// 2007版本if (fileNameExt.IndexOf(".xlsx") > 0)workbook = new XSSFWorkbook(fs);// 2003版本else if (fileNameExt.IndexOf(".xls") > 0)workbook = new HSSFWorkbook(fs);if (fileNameExt != null){sheet = workbook.GetSheet("sheet1");if (sheet == null) //如果沒有找到指定的sheetName對應(yīng)的sheet,則嘗試獲取第一個sheet{sheet = workbook.GetSheetAt(0);}}else{sheet = workbook.GetSheetAt(0);}if (sheet != null){IRow firstRow = sheet.GetRow(0);//一行最后一個cell的編號 即總的列數(shù)int cellCount = firstRow.LastCellNum;for (int i = firstRow.FirstCellNum; i < cellCount; ++i){ICell cell = firstRow.GetCell(i);if (cell != null){string cellValue = cell.StringCellValue;if (!string.IsNullOrEmpty(cellValue)){DataColumn column = new DataColumn(cellValue);data.Columns.Add(column);}}}//excel表格中的第一行作為dataTable的標(biāo)題//所以從第二行開始startRow = sheet.FirstRowNum+1;//獲取最后一行的標(biāo)號int rowCount = sheet.LastRowNum;for (int i = startRow; i <= rowCount; ++i){IRow row = sheet.GetRow(i);//沒有數(shù)據(jù)的行默認(rèn)是null  if (row == null) continue;      DataRow dataRow = data.NewRow();for (int j = row.FirstCellNum; j < cellCount; ++j){//同理,沒有數(shù)據(jù)的單元格都默認(rèn)是nullif (row.GetCell(j) != null)dataRow[j] = row.GetCell(j).ToString();}data.Rows.Add(dataRow);}}}catch (Exception ex){Console.WriteLine("Exception: " + ex.Message);}//設(shè)置數(shù)據(jù)源this.dataGridView1.DataSource = data;

?

總結(jié)

以上是生活随笔為你收集整理的C#中DataTable使用以及对行与列的赋值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。