C#中DataTable使用以及对行与列的赋值
场景
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使用以及对行与列的赋值相关推荐
- pandas 选取第一行_用pandas中的DataFrame时选取行或列的方法
如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...
- python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法
如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...
- hive中array嵌套map以及行转列的使用
1. 数据源信息 {"student": {"name":"king","age":11,"sex" ...
- python中pandas.DataFrame如何对行与列求和以及如何添加新行与列的示例
转载 本文介绍的是python中DataFrame对行与列求和及添加新行与列的相关资料,下面话不多说,来看看详细的介绍吧. 方法如下: 导入模块: from pandas import DataFra ...
- matlab 包含nan的行,matlab中去除含有NaN的行或者列
今天在用matlab的时候又积累了两点,现在总结如下 1.Objective function is undefined at initial point. Fmincon cannot contin ...
- matlab 中去除含有NaN的行或者列
今天在用matlab的时候又积累了两点,现在总结如下 1.Objective function is undefined at initial point. Fmincon cannot contin ...
- datatable 如何修改 某行 某列 的 字体颜色
$('#example').DataTable( {"columnDefs": [{"targets": 5,"createdCell": ...
- 列注释_【EXCEL检查问题】:如何快速检查并删除EXCEL中隐藏的工作表、行、列等信息...
前注:本案例是以EXCEL2016为示范软件,各版本的部分功能和路径可能不同 在EXCEL使用过程中,你是否遇到过某一列的公式怎么修改都报错的情况?你是否遇到过一个只有区区几行数据的表格,却占用了好几 ...
- 在 Excel UiPath 中插入或删除行或列
在 Excel UiPath 中插入或删除行或列 很多时候在设计业务流程自动化时,我们使用 excel 自动化. 机器人可能会以excel的形式获取输入,然后您需要很好地设置数据以使其易于自动化. 有 ...
最新文章
- swift_008(Swift的类型转换)
- Linux正确的关机方式
- 网际协议:动态主机配置协议(DHCP)和NAT
- TaskScheduler相关
- Python--day47--mysql索引类型介绍
- [BZOJ4810][Ynoi2017]由乃的玉米田 莫队+bitset
- ORACLE PATCH 版本的查询 PL/SQL
- Oracle数据库索引使用及索引失效总结
- 老显卡都涨价了,所以我把坏的显卡拿出来修
- 腾讯笔试题 贪吃的小Q
- 上传本地图片到数据库
- Android系统移植与调试之-------build.prop文件详细赏析
- 如何实现受管控的安全文件传输MFT?
- 解决Typora导出文件为其他格式时图片无法显示或者发给别人
- 计算机网络安全技术文献综述,计算机网络安全防护技术研究总结与参考文献
- 达内python 资源_Python学习资源整理,优质Python学习资源推荐
- 免费获得盛大网盘EverBox125G容量方法
- Android逆向——网易云音乐排行榜api(上)
- 低成本创业必知的五个“基本点”
- 微信小程序开发笔记 进阶篇③——onfire.js事件订阅和发布在微信小程序中的使用
热门文章
- 吐血整理:Java线程池源码分析(基于JDK1.8建议收藏)
- ffmpeg基本用法
- Redis 修改密码
- 苹果9是5g手机吗_苹果手机扩容对手机有影响吗
- java bmp信息隐藏_BMP图像信息隐藏及检测
- python tableview绑定字典_TableView索引的添加
- 弹性地基梁板法计算原理_建筑混凝土结构设计和计算方法,老师傅总结:其原理就是这么简单...
- android镊 姩瀹夎 apk,用java写的jodconverter借用openoffice来转换office成pdf的示例代码...
- after oracle alter,关于数据库级ALTER的触发器
- python读取 application_python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)...