C#中DataTable使用以及对行与列的赋值
生活随笔
收集整理的這篇文章主要介紹了
C#中DataTable使用以及对行与列的赋值
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
場景
DataTable
DataTable是一個臨時保存數(shù)據(jù)的網(wǎng)格虛擬表(表示內(nèi)存中數(shù)據(jù)的一個表)。
這里用來給DataGridView設(shè)置數(shù)據(jù)源。
效果
?
列屬性
也就是上面第一行顯示的標題屬性。
DataTable data = new DataTable(); DataColumn column = new DataColumn(cellValue); data.Columns.Add(column);行屬性
標題下面一行一行的屬性。
? DataRow dataRow = data.NewRow();for (int j = row.FirstCellNum; j < cellCount; ++j){//同理,沒有數(shù)據(jù)的單元格都默認是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的標題//所以從第二行開始startRow = sheet.FirstRowNum+1;//獲取最后一行的標號int rowCount = sheet.LastRowNum;for (int i = startRow; i <= rowCount; ++i){IRow row = sheet.GetRow(i);//沒有數(shù)據(jù)的行默認是null if (row == null) continue; DataRow dataRow = data.NewRow();for (int j = row.FirstCellNum; j < cellCount; ++j){//同理,沒有數(shù)據(jù)的單元格都默認是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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Winform中使用OpenFileDi
- 下一篇: Winform中使用NPOI实现Exce