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教程 – 自动 ...
随机推荐
- WIN8,开机启动 需要管理员权限的程序
1. 用WPF开发,需要管理员权限并开机启动,以写注册表的方式实现.仅写注册表只能启动一般权限的程序. 2. 考虑这样实现: 程序以一般权限启动,启动以后申请管理员权限. 实现: App类中重写OnS ...
- lua table integer index 特性
table.maxn (table) Returns the largest positive numerical index of the given table, or zero if the t ...
- Spring事务传播属性
Spring 对事务控制的支持统一在 TransactionDefinition 类中描述,该类有以下几个重要的接口方法: int getPropagationBehavior():事务的传播行为 i ...
- LoadRunner连接Genymotion
- C# 文件压缩加解密
1.这种方式也可以做到对文件的加密压缩,解密解压缩,只是在压缩和解压缩时会出现压缩窗口 1.1加密压缩 strzipPath:压缩包路径 strtxtPath:待压缩的文件路径 password:加密 ...
- 服务器支持AspJpeg和JMail45_free.msi组件
解决办法: 1.在服务器上安装上AspJpeg和JMail45_free.msi后, 2.在cmd中输入regsvr32 c:/windows/SysWOW64/aspjpeg.dll 3.把网站对 ...
- Javascript模块化编程(二):AMD规范(转)
这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要 ...
- Windows Phone 十七、Socket
Socket 常用类型 StreamSocket:Socket对象 StreamSocketListener:Socket监听对象,适用于服务端 服务端代码 <Grid x:Name=" ...
- windows批处理的介绍
扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命 ...
- 快速排序算法 java 实现
快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...