场景

DataTable

DataTable是一个临时保存数据的网格虚拟表(表示内存中数据的一个表)。

这里用来给DataGridView设置数据源。

效果

列属性

也就是上面第一行显示的标题属性。

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){//同理,没有数据的单元格都默认是nullif (row.GetCell(j) != null)dataRow[j] = row.GetCell(j).ToString();}data.Rows.Add(dataRow);

实现

这里用读取Excel并赋值给DataTables然后设置DataGridView的数据源为例。

  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对应的sheet,则尝试获取第一个sheet{sheet = workbook.GetSheetAt(0);}}else{sheet = workbook.GetSheetAt(0);}if (sheet != null){IRow firstRow = sheet.GetRow(0);//一行最后一个cell的编号 即总的列数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);//没有数据的行默认是null  if (row == null) continue;      DataRow dataRow = data.NewRow();for (int j = row.FirstCellNum; j < cellCount; ++j){//同理,没有数据的单元格都默认是nullif (row.GetCell(j) != null)dataRow[j] = row.GetCell(j).ToString();}data.Rows.Add(dataRow);}}}catch (Exception ex){Console.WriteLine("Exception: " + ex.Message);}//设置数据源this.dataGridView1.DataSource = data;

C#中DataTable使用以及对行与列的赋值相关推荐

  1. pandas 选取第一行_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  2. python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  3. hive中array嵌套map以及行转列的使用

    1. 数据源信息 {"student": {"name":"king","age":11,"sex" ...

  4. python中pandas.DataFrame如何对行与列求和以及如何添加新行与列的示例

    转载 本文介绍的是python中DataFrame对行与列求和及添加新行与列的相关资料,下面话不多说,来看看详细的介绍吧. 方法如下: 导入模块: from pandas import DataFra ...

  5. matlab 包含nan的行,matlab中去除含有NaN的行或者列

    今天在用matlab的时候又积累了两点,现在总结如下 1.Objective function is undefined at initial point. Fmincon cannot contin ...

  6. matlab 中去除含有NaN的行或者列

    今天在用matlab的时候又积累了两点,现在总结如下 1.Objective function is undefined at initial point. Fmincon cannot contin ...

  7. datatable 如何修改 某行 某列 的 字体颜色

    $('#example').DataTable( {"columnDefs": [{"targets": 5,"createdCell": ...

  8. 列注释_【EXCEL检查问题】:如何快速检查并删除EXCEL中隐藏的工作表、行、列等信息...

    前注:本案例是以EXCEL2016为示范软件,各版本的部分功能和路径可能不同 在EXCEL使用过程中,你是否遇到过某一列的公式怎么修改都报错的情况?你是否遇到过一个只有区区几行数据的表格,却占用了好几 ...

  9. 在 Excel UiPath 中插入或删除行或列

    在 Excel UiPath 中插入或删除行或列 很多时候在设计业务流程自动化时,我们使用 excel 自动化. 机器人可能会以excel的形式获取输入,然后您需要很好地设置数据以使其易于自动化. 有 ...

最新文章

  1. swift_008(Swift的类型转换)
  2. Linux正确的关机方式
  3. 网际协议:动态主机配置协议(DHCP)和NAT
  4. TaskScheduler相关
  5. Python--day47--mysql索引类型介绍
  6. [BZOJ4810][Ynoi2017]由乃的玉米田 莫队+bitset
  7. ORACLE PATCH 版本的查询 PL/SQL
  8. Oracle数据库索引使用及索引失效总结
  9. 老显卡都涨价了,所以我把坏的显卡拿出来修
  10. 腾讯笔试题 贪吃的小Q
  11. 上传本地图片到数据库
  12. Android系统移植与调试之-------build.prop文件详细赏析
  13. 如何实现受管控的安全文件传输MFT?
  14. 解决Typora导出文件为其他格式时图片无法显示或者发给别人
  15. 计算机网络安全技术文献综述,计算机网络安全防护技术研究总结与参考文献
  16. 达内python 资源_Python学习资源整理,优质Python学习资源推荐
  17. 免费获得盛大网盘EverBox125G容量方法
  18. Android逆向——网易云音乐排行榜api(上)
  19. 低成本创业必知的五个“基本点”
  20. 微信小程序开发笔记 进阶篇③——onfire.js事件订阅和发布在微信小程序中的使用

热门文章

  1. 吐血整理:Java线程池源码分析(基于JDK1.8建议收藏)
  2. ffmpeg基本用法
  3. Redis 修改密码
  4. 苹果9是5g手机吗_苹果手机扩容对手机有影响吗
  5. java bmp信息隐藏_BMP图像信息隐藏及检测
  6. python tableview绑定字典_TableView索引的添加
  7. 弹性地基梁板法计算原理_建筑混凝土结构设计和计算方法,老师傅总结:其原理就是这么简单...
  8. android镊 姩瀹夎 apk,用java写的jodconverter借用openoffice来转换office成pdf的示例代码...
  9. after oracle alter,关于数据库级ALTER的触发器
  10. python读取 application_python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)...