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教程 – 自动 ...
随机推荐
- SpringMVC常用配置-添加静态资源处理器-针对SpringMVC中静态资源无法访问的问题
- CSS实现单行、多行文本溢出显示省略号(…)
如果实现单行文本的溢出显示省略号同学们应该都知道用text-overflow:ellipsis属性来,当然还需要加宽度width属来兼容部分浏览. 实现方法: overflow: hidden; te ...
- PhpStorm 4.0 & 5.0 部署本地Web应用 (转)
1.创建新的项目(project),创建完成之后单击工具栏的应用运行/调试(Select Run/Debug Configuration)的下拉菜单弹出 Edit Cofigurations选项,单击 ...
- HTML5的postMessage使用记要////////////////////////////zzzzzzzz
2014-11-09 20:17:27http://jo2.org/html5-js-postmessage-tips/--点击数:2710 HTML5提出了一个新的用来跨域传值的方法,即po ...
- 基础-DP
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...
- SASS 初学者入门
SASS 初学者入门 Sass 是什么? Sass 是Syntactically Awesome Stylesheete Sass的缩写,是由Hampton Catlin开发的. Sass可以简化你的 ...
- [Android] ListView关于adapter多种view设置
使用的关键点是在adapter覆盖两个方法 public int getItemViewType(int position) public int getViewTypeCount() 其它的可另go ...
- robotium教材(一):robotium环境搭建
博客Melon麦东=原创内容 目录: 1.基于无源码apk测试工程的搭建 2.基于有源码的测试工程搭建 3.遇到的问题(各种刨坑,各种尝试,网上水货回答真的太多,希望看见此文的同学你们是幸运的) ...
- JavaScript界面传值与前后台互调
话说曾在校时,前端的第一门课程HTML静态网页设计,其老师,真是应了他的名字: 路遥知马力. 整个学期硬是全部在 Dreamwear 中进行拖拽控件来教学,未曾教授一句代码.成功忽悠了全体学生,课上一 ...
- install phpexcel using composer in thinkPHP
Environment Window 10.1 XAMPP 7.0.9 (PHP 7.0.9) thinkPHP 5.0.1 Steps # visit https://getcomposer.org ...