.net 读取excel表格数据

文件格式.xls

代码展示:

//集合列表

IList<ProjectStatuStat> projectStatuStats = new List<ProjectStatuStat>();

//取根目录下的excel

string absPath = HttpContext.Current.Server.MapPath("~/TemplateFiles/台账.xls");

//取excel的sheet的命名
DataTable dt = ExcelNPOIHelper.Import(absPath, "总清单");

//循环excel表格数据
foreach (DataRow row in dt.Rows)
{
ProjectStatuStat pss = new ProjectStatuStat();
pss.ProjectNumber = row[0].ToString().Trim();excel第一列
pss.ProjectName = row[1].ToString().Trim();excel第二列

projectStatuStats.Add(pss);

}

/// <summary>读取excel
/// 默认第一行为标头
/// </summary>
/// <param name="strFileName">文件全路径</param>
/// <param name="sheetName">sheetName</param>
/// <returns></returns>
public static DataTable Import(string strFileName,string sheetName)
{
DataTable dt = new DataTable();

HSSFWorkbook hssfworkbook;
using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
ISheet sheet = hssfworkbook.GetSheet(sheetName);
System.Collections.IEnumerator rows = sheet.GetRowEnumerator();

IRow headerRow = (HSSFRow)sheet.GetRow(0);
int cellCount = headerRow.LastCellNum;

for (int j = 0; j < cellCount; j++)
{
ICell cell = headerRow.GetCell(j);
dt.Columns.Add(cell.ToString());
}

for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
IRow row = (HSSFRow)sheet.GetRow(i);
DataRow dataRow = dt.NewRow();

for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}

dt.Rows.Add(dataRow);
}
return dt;
}

文件格式不支持.xlsx  .若读取该格式可参考:https://www.cnblogs.com/wobuchifanqie/p/7685038.html

原文地址:https://www.cnblogs.com/suqq/p/11669916.html

时间: 2024-07-30 03:43:29

.net 读取excel表格数据的相关文章

C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel

其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(object sender, EventArgs e) { OpenFileDialog fd = new OpenFileDialog();//首先根据打开文件对话框,选择excel表格 ofd.Filter = "表格|*.xls";//打开文件对话框筛选器 string strPath;/

VC6.0读取Excel文件数据

啰嗦一下:本人所在公司从事碟式斯特林太阳能发电设备的研发与销售.单台设备图如下: 工作原理如下:整个设备大致可分为五个部分, 1.服务器,负责气象.发电等数据存取,电.网连接等处理: 2.气象站,通过光感应器实时获取气象数据,传送至服务器 3.碟型镜面,反射阳光热量,均匀聚焦到350mm直径的圆形范围内--发动机热头大小: 4.斯特林发动机,吸收镜面反射热量,通过内部气体膨胀.收缩带动发动机发电: 5.通信线,连接系统各个部分,使其运行正常. 对于这样一台设备,要使其高效发电,出气象条件要好之外

用多线程优化Excel表格数据导入校验的接口

公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示.(前端等待响应,难点).用户再点击导入按钮,进行异步导入(前端不等待,好做).当前接口仅支持300条数据,现在要求我要支持3000条数据. 解决问题,思路是关键. 首先,查看接口,找到读取表格的位置,看到判断,如果数据量大于300,直接返回.把300改成3000. 然后,分析导入数据校验,都是和哪些数据进行校验的,这些数据都是从数据库来的.每一次都从数据库查

Unity —— protobuf 导excel表格数据

前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数据的导出,还能直接用于网络通信协议的定制. 一.protobuf简介: protobuf是由google公司发布的一个开源的项目,是一款方便而又通用的数据传输协议.所以我们在Unity中也可以借助protobuf来进行数据存储和网络协议两方面的开发,这里先说说数据存储部分的操作,也就是: 将.xls

Java读取excel表格

Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件.这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库.它包含类和方法对用户输入数据或文件到MS Office文档进行解码. Apache POI Apache POI是Apache软件基金会提供的100%开源库.大多

python读取excel表格生成sql语句 第一版

由于单位设计数据库表·,都用sql.不知道什么原因不用 powerdesign或者ermaster工具,建表很痛苦  作为程序猿当然要想办法解决,用Python写一个程序解决 需要用到 xlrd linux下 sudo pip install xlrd 主要是适用于db2数据库 excel 表结构 其中 number是不正确的字段类型 不知道同事为啥这么设置.这里程序里有纠错,这个程序就是将sql语句拼好. __author__ = 'c3t' # coding:utf-8 import xlr

将包含经纬度点位信息的Excel表格数据导入到ArcMap中并输出成shapefile

将包含经纬信息的Excel表格数据,导入到ArcMap中并输出成shapefile,再进行后面的操作.使用这种方法可以将每一个包含经纬信息的数据在ArcMap中点出来. 一.准备数据 新建Excel表格,保存时设置后缀名为.xls(即2003Excel的表格).在表格首行建立各字段名,其中要包含经度和纬度的信息,用于在地图中标定位置.录入各记录属性,整理成表. 二.ArcMap中添加x-y事件 在打开的对话框中选择数据表和x.y对应的经度.纬度.选择坐标系统,这里因为我们的x,y对应的数据是经纬

Python:读取Excel表格时出现的u&#39;\u51c6’ 无法正确显示汉字

读取Excel后,想显示其中一行的元素,结果读出来是这样[u'\u51c6\u8003\u8bc1\u53f7', u'\u8003\u751f\u59d3\u540d'],始终不显示正常的汉字 依照网上的方法直接print()即可输出,试验后发现确实可以,不过一次只能输出一个元素,多余一个元素则依旧 后查找得知解决方法:需要用到json库 1 import json 2 #……文件的读取略去 3 #json.dumps(A).decode("unicode-escape") 4 #这

利用java反射机制实现读取excel表格中的数据

如果直接把excel表格中的数据导入数据库,首先应该将excel中的数据读取出来. 为了实现代码重用,所以使用了Object,而最终的结果是要获取一个list如List<User>.List<Book>等,所以需要使用泛型机制去实现.下面会给出代码,可能会稍微复杂一点,但注释很清晰,希望大家耐心阅读. 在上代码之前简单说一下思路: 1.excel表格必须有表头,且表头中各列的值要与实体类的属性相同: 2.先读取表头信息,然后获取表头列数,接着确定需要使用的set方法的名称,并存到数