NPOI导入xls,xlsx格式实例
NPOI DLL下载地:http://npoi.codeplex.com/releases
using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Topevery.DUM.PublicServer.Manager { public partial class ToiletListImport : BasePage { private static readonly string SavePath = System.Configuration.ConfigurationSettings.AppSettings["SavePath"]; private int _editId; public int EditId { get { _editId = ); return _editId; } set { _editId = value; } } protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { //SetCondition(); } } protected void btnImport_Click(object o, EventArgs e) { // string Msg = ""; ; ; //保存文件 string filePath = string.Format("~/{0}", SavePath); filePath = Path.Combine(filePath, string.Format("{0}_{1}", UserObject.UserID.ToString(), fulOffLineData.FileName)); string strPhysicalPath = Server.MapPath(filePath); fulOffLineData.PostedFile.SaveAs(strPhysicalPath); { IWorkbook workBook = null; ISheet sheet = null; IRow row = null; try { //加载文档 using (FileStream fileStream = new FileStream(strPhysicalPath, FileMode.Open)) { //不同格式实例化不同工作薄 if (strPhysicalPath.EndsWith(".xls"))//2003版本及以上 { workBook = new HSSFWorkbook(fileStream); } else if (strPhysicalPath.EndsWith(".xlsx"))//2007版本及以上 { workBook = new XSSFWorkbook(fileStream); } } //加载指定工作薄 sheet = workBook.GetSheetAt(); //加载表头 IRow headerRow = sheet.GetRow(); ICell cellHeader = null; ICell cell = null; int cellCount = headerRow.LastCellNum; DateTime dtTmpTime = DateTime.Now; string Code; string Address; string regionid; string ToiletType; string area; string ManSquatting; string WomanSquatting; string ManagerPersonTel; string Jingdu; string Weidu; string ManagerPerson; string ClearPerson; string SuperviseTel; string opentype; string Remark; string status; string strTmpTime; string strCreTime; //遍历 ; i <= sheet.LastRowNum; i++) { ; try { row = sheet.GetRow(i); Toilet entity = new Toilet(); PcInfo para = new PcInfo(); ) { para = PcInfoLogic.GetEntity(EditId); } else { para = new PcInfo(); } //公厕编号 Code = row.GetCell().ToString(); if (!string.IsNullOrEmpty(Code)) { para.Name = Code; entity.Code = Code; } //详细位置 Address = row.GetCell().ToString(); if (!string.IsNullOrEmpty(Address)) { entity.Address = Convert.ToString(Address); para.Address = Convert.ToString(Address); } //区域名称返回区域编号 regionid = row.GetCell().ToString(); if (!string.IsNullOrEmpty(regionid)) { entity.RegionID = Convert.ToInt32(RegionID(regionid)); } //类型 ToiletType = row.GetCell().ToString(); if (!string.IsNullOrEmpty(ToiletType)) { entity.ToiletType = ToiletID(ToiletType); } //面积 area = row.GetCell().ToString(); if (!string.IsNullOrEmpty(area)) { entity.Area = ToiletID(area); } //男蹲位数 ManSquatting = row.GetCell().ToString(); if (!string.IsNullOrEmpty(ManSquatting)) { entity.ManSquatting = Convert.ToInt16(ManSquatting); } //女蹲位数 WomanSquatting = row.GetCell().ToString(); if (!string.IsNullOrEmpty(WomanSquatting)) { entity.WomanSquatting = Convert.ToInt16(WomanSquatting); } //经度 Jingdu = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(Jingdu)) { entity.Jingdu = Jingdu; } //维度 Weidu = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(Weidu)) { entity.Weidu = Weidu; } //建设时间 strTmpTime = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(strTmpTime)) { if (DateTime.TryParse(strTmpTime, out dtTmpTime)) { entity.BuildTime = dtTmpTime; } } //开门时间 strCreTime = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(strCreTime)) { if (DateTime.TryParse(strCreTime, out dtTmpTime)) { entity.DbCreateDate = dtTmpTime; } } //管理人 ManagerPerson = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(ManagerPerson)) { entity.ManagerPerson = ManagerPerson; } //管理人员电话 ManagerPersonTel = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(ManagerPersonTel)) { entity.ManagerPersonTel = ManagerPersonTel; } //保洁人员 ClearPerson = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(ClearPerson)) { entity.ClearPerson = ClearPerson; } //监督电话 SuperviseTel = Convert.ToString(row.GetCell()); if (!string.IsNullOrEmpty(SuperviseTel)) { entity.SuperviseTel = SuperviseTel; para.Phone = SuperviseTel; } //开放状态 opentype = OpenTypeID(row.GetCell().ToString()); if (!string.IsNullOrEmpty(opentype)) { entity.OpenType = Convert.ToInt32(opentype); } //影像URL Remark = Convert.ToString(row.GetCell().ToString()); if (!string.IsNullOrEmpty(Remark)) { entity.Remark = Remark; para.Desc = Remark; } //建设状态 status = StatusID(row.GetCell().ToString()); if (!string.IsNullOrEmpty(status)) { entity.Status = Convert.ToInt32(status); } ) { PcInfoLogic.Update(para); entity = ToiletLogic.GetEntity(EditId); } else { para.DbCreateDate = DateTime.Now; para.DbLastUpdateDate = DateTime.Now; para.DbCreateID = UserObject.UserID; para.MapData = new Microsoft.SqlServer.Types.SqlGeometry(); //公众服务信息表 PcInfoId = (int)PcInfoLogic.Insert(para); entity.ID = PcInfoId; } ) { entity.DbCreateDate = DateTime.Now; entity.DbCreateID = UserObject.UserID; //厕所表 ToiletLogic.Insert(entity); } else { ToiletLogic.Update(entity); } iAddedCount++; } catch { iFaileCount++; } } //回收资源 cellHeader = null; headerRow = null; } catch (Exception ex) { } finally { if (row != null) row = null; if (sheet != null) sheet = null; if (workBook != null) { //workBook.Clear(); workBook = null; } } } //删除文件 File.Delete(strPhysicalPath); //返回处理结果 //关闭窗口并刷新父窗口 base.WriteClientScript(string.Format("jUIDialog('导入成功{0}条,失败{1}条!{2}');", iAddedCount, iFaileCount, Msg) + "try{$(document).ready(function(){RelashParent();});}catch(e){}"); } //根据公厕名称获取公厕编号 public static string RegionID(string RegionName ) { DataTable ds = ToiletLogic.RegionID(RegionName); ][].ToString();; } //根据类型名称获取类型编号 public static int ToiletID(string ToiletName) { ; if (ToiletName=="移动厕所") { ToiletID= ; } else if (ToiletName=="一类水冲公厕") { ToiletID = ; } else { ToiletID = ; } return ToiletID; } //根据建设状态返回建设编号 public static string StatusID(string StatusName) { "; if (StatusName == "建成") { StatusID = "; } else { StatusID = "; } return StatusID; } //根据开放状态返回建设编号 public static string OpenTypeID(string OpenTypeName) { "; if (OpenTypeName == "开放") { OpenTypeID ="; } else { OpenTypeID ="; } return OpenTypeID; } } }
HttpPostedFile file = FileUpload1.PostedFile; string fileExt = Path.GetExtension(file.FileName); DataTable dt = new DataTable(); int mon = Convert.ToInt32(drpMonth.SelectedValue); int year = Convert.ToInt32(drpYear.SelectedValue); int times = DateTime.DaysInMonth(year, mon); if (fileExt != ".xls" && fileExt != ".xlsx") { } else { try { dt = ExcelToDatatable(file.InputStream).Select("c_grid is not null").CopyToDataTable(); } catch (Exception ex) { throw ex; //ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), "<script language='javascript' type='text/javascript'>alert('读取数据出错,请检查文件格式是否正确后重试!');</script>"); } } private DataTable ExcelToDatatable(Stream inStream) { DataTable dt = new DataTable(); int mon =Convert.ToInt32(drpMonth.SelectedValue); int year = Convert.ToInt32(drpYear.SelectedValue); int times = DateTime.DaysInMonth(year, mon); ; using (HSSFWorkbook workbook = new HSSFWorkbook(inStream)) { HSSFSheet sheet = (HSSFSheet)workbook.GetSheetAt(); System.Collections.IEnumerator rows = sheet.GetRowEnumerator(); ; rows.MoveNext();//第一行没用 rows.MoveNext();//第二行没用 n++; string strGrid = ""; while (rows.MoveNext()) { HSSFRow row = (HSSFRow)rows.Current; )//定义列的行 { List<DataColumn> columnList = new List<DataColumn>() { new DataColumn("c_grid"), new DataColumn("c_name"), new DataColumn("c_date"), new DataColumn("c_1"), new DataColumn("c_2"), new DataColumn("c_3"), new DataColumn("c_4"), new DataColumn("c_5"), new DataColumn("c_6"), new DataColumn("c_7"), new DataColumn("c_8"), new DataColumn("c_9"), new DataColumn("c_10"), new DataColumn("c_11"), new DataColumn("c_12"), new DataColumn("c_13"), new DataColumn("c_14"), new DataColumn("c_15"), new DataColumn("c_16"), new DataColumn("c_17"), new DataColumn("c_18"), new DataColumn("c_19"), new DataColumn("c_20"), new DataColumn("c_21"), new DataColumn("c_22"), new DataColumn("c_23"), new DataColumn("c_24"), new DataColumn("c_25"), new DataColumn("c_26"), new DataColumn("c_27"), new DataColumn("c_28"), new DataColumn("c_29"), new DataColumn("c_30"), new DataColumn("c_31") }; foreach (DataColumn column in columnList) { dt.Columns.Add(column); } } else { DataRow dtRow = dt.NewRow(); //string rValue = ""; ; i <= dayCount; i++) { HSSFCell cell = (HSSFCell)row.GetCell(i); ) { if (cell == null) { dtRow[] = strGrid; } else { if (!string.IsNullOrEmpty(cell.ToString())) { strGrid = cell.ToString(); } dtRow[] = strGrid; } } else { if (cell == null) { dtRow[i - ] = ""; } else { dtRow[i - ] = cell.ToString(); } } } dt.Rows.Add(dtRow); } n++; } } return dt; }
NPOI导入xls,xlsx格式实例的更多相关文章
- POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)
一.使用poi解析excel文档 注:全部采用poi接口进行解析,不需要区分xls.xlsx格式,不需要判断文档类型. poi中的日期格式判断仅支持欧美日期习惯,对国内的日期格式并不支持判断,怎么办? ...
- 关于jquery js读取excel文件内容 xls xlsx格式 纯前端
附带参考:http://blog.csdn.net/gongzhongnian/article/details/76438555 更详细导入导出:https://www.jianshu.com/p/7 ...
- NPOI导入Excel日期格式的处理 - 附类型格式匹配表
传统操作Excel方法在部署的时候遇到很多问题,如目标主机需要安装Excel.64位电脑不支持.需要安装相关驱动程序等.所以我们一般会使用开源的NPOI来替代传统的Excel操作方法,NPOI的优点是 ...
- C# NPOI 导入与导出Excel文档 兼容xlsx, xls
之前写了个小程序,导出一些数据成Excel,程序使用的是Microsoft.Office.Interop.Excel类来操作Excel. 在本机测试的时候都好好的,但是将生成文件放到其他电脑上却怎样也 ...
- [转]C# NPOI 导入与导出Excel文档 兼容xlsx, xls
本文转自:https://www.cnblogs.com/lazyneal/p/6148912.html 参考:http://www.cnblogs.com/restran/p/3889479.htm ...
- NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx 格式
下载地址 http://npoi.codeplex.com/releases 下面放一个 NPOIHelper 助手类吧,也不是我写的- NpoiExcelHelper 可以生成xlsx格式publi ...
- C# NPOI 导入与导出Excel文档 兼容xlsx, xls(xf13中已经引用了xlsx的npoi)
这里使用的NPOI版本为: 2.1.3.1 官方下载地址: http://npoi.codeplex.com/releases 版本内包含.Net 2.0 与.Net 4.0 .Net 4.0中包含文 ...
- C# 将DataGridView中显示的数据导出到Excel(.xls和.xlsx格式)—NPOI
前言 https://blog.csdn.net/IT_xiao_guang_guang/article/details/104217491 本地数据库表中有46785条数据,测试正常 初次运行程 ...
- NPOI导入excel为datatable (xls xlsx xlsm)
使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中 http://www.cnblogs.com/songrun/p/3547738.html NPOI 2.0教程 – 自动 ...
随机推荐
- ng-selected ng-change
<!DOCTYPE HTML><html ng-app="myApp"><head><meta http-equiv="Cont ...
- 【转载】LR提交JSON格式的请求
需求: 测试一个“修改用户铜板”的接口,这个接口接收JSON格式的请求,返回JSON格式的结果: 必须用PUT方式提交请求: 提交内容: {"method":"modi ...
- Spring boot mybatis项目启动后一直刷日志的bug修复……
最近接手一个项目,使用的框架是springboot+mybatis: 其中持久层是使用mybatis集成的,sql是配置在mapper.xml文件中: 然后呢,有时候做新功能的时候,往xml文件中增加 ...
- Python_转义字符
转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \ ...
- hdfs shell 命令以及原理
shell 操作 dfs 上传[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -put /opt/MegaRAID/MegaCli/MegaCli64 ...
- vmware在桥接模式下配置centos7网络,并使用xshell连接虚拟主机(总结篇)
虚拟机系统:centos7 mini版本 1.虚拟安装成功之后,首先我配置的是桥接模式,因为我使用的是网线,配置完桥接模式之后我的linux虚拟机就可以访问网络了 2.因为我安装的是centos7的迷 ...
- (转)HTTP 长连接和短连接
1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...
- Linux下常用yum命令
linux各发行版有多种包管理机制,下面介绍基于RedHat系的yum包管理命令: yum -y install xxx 无需询 ...
- VMWare虚拟机NAT上网方法 亲测可用
首先虚拟机的网卡要选择NAT 然后 在Virtual Network Editor中一定选上DHCP功能. 还要主机的服务必须开启.主机的VMnet8对应NAT模式,这个VMnet8的配置保持默认不要 ...
- Xcode 7 PCH宏文件的配置和使用---学会使用宏定义
使用宏的目的是什么? 由于实际开发中,有时候一些设置信息需要重复使用(例如设置打印信息.配置颜色.配置宽度等),如果每次都手动去敲每次都去创建会很麻烦.虽然宏使用的时候会占用内存,可是目前来说大部分开 ...