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格式实例的更多相关文章

  1. POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)

    一.使用poi解析excel文档 注:全部采用poi接口进行解析,不需要区分xls.xlsx格式,不需要判断文档类型. poi中的日期格式判断仅支持欧美日期习惯,对国内的日期格式并不支持判断,怎么办? ...

  2. 关于jquery js读取excel文件内容 xls xlsx格式 纯前端

    附带参考:http://blog.csdn.net/gongzhongnian/article/details/76438555 更详细导入导出:https://www.jianshu.com/p/7 ...

  3. NPOI导入Excel日期格式的处理 - 附类型格式匹配表

    传统操作Excel方法在部署的时候遇到很多问题,如目标主机需要安装Excel.64位电脑不支持.需要安装相关驱动程序等.所以我们一般会使用开源的NPOI来替代传统的Excel操作方法,NPOI的优点是 ...

  4. C# NPOI 导入与导出Excel文档 兼容xlsx, xls

    之前写了个小程序,导出一些数据成Excel,程序使用的是Microsoft.Office.Interop.Excel类来操作Excel. 在本机测试的时候都好好的,但是将生成文件放到其他电脑上却怎样也 ...

  5. [转]C# NPOI 导入与导出Excel文档 兼容xlsx, xls

    本文转自:https://www.cnblogs.com/lazyneal/p/6148912.html 参考:http://www.cnblogs.com/restran/p/3889479.htm ...

  6. NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx 格式

    下载地址 http://npoi.codeplex.com/releases 下面放一个 NPOIHelper 助手类吧,也不是我写的- NpoiExcelHelper 可以生成xlsx格式publi ...

  7. 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中包含文 ...

  8. C# 将DataGridView中显示的数据导出到Excel(.xls和.xlsx格式)—NPOI

    前言 https://blog.csdn.net/IT_xiao_guang_guang/article/details/104217491  本地数据库表中有46785条数据,测试正常  初次运行程 ...

  9. NPOI导入excel为datatable (xls xlsx xlsm)

    使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中 http://www.cnblogs.com/songrun/p/3547738.html NPOI 2.0教程 – 自动 ...

随机推荐

  1. ng-selected ng-change

    <!DOCTYPE HTML><html ng-app="myApp"><head><meta http-equiv="Cont ...

  2. 【转载】LR提交JSON格式的请求

    需求: 测试一个“修改用户铜板”的接口,这个接口接收JSON格式的请求,返回JSON格式的结果: 必须用PUT方式提交请求: 提交内容:  {"method":"modi ...

  3. Spring boot mybatis项目启动后一直刷日志的bug修复……

    最近接手一个项目,使用的框架是springboot+mybatis: 其中持久层是使用mybatis集成的,sql是配置在mapper.xml文件中: 然后呢,有时候做新功能的时候,往xml文件中增加 ...

  4. Python_转义字符

    转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \ ...

  5. hdfs shell 命令以及原理

    shell 操作 dfs 上传[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -put /opt/MegaRAID/MegaCli/MegaCli64 ...

  6. vmware在桥接模式下配置centos7网络,并使用xshell连接虚拟主机(总结篇)

    虚拟机系统:centos7 mini版本 1.虚拟安装成功之后,首先我配置的是桥接模式,因为我使用的是网线,配置完桥接模式之后我的linux虚拟机就可以访问网络了 2.因为我安装的是centos7的迷 ...

  7. (转)HTTP 长连接和短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问 ...

  8. Linux下常用yum命令

    linux各发行版有多种包管理机制,下面介绍基于RedHat系的yum包管理命令: yum -y install xxx                                     无需询 ...

  9. VMWare虚拟机NAT上网方法 亲测可用

    首先虚拟机的网卡要选择NAT 然后 在Virtual Network Editor中一定选上DHCP功能. 还要主机的服务必须开启.主机的VMnet8对应NAT模式,这个VMnet8的配置保持默认不要 ...

  10. Xcode 7 PCH宏文件的配置和使用---学会使用宏定义

    使用宏的目的是什么? 由于实际开发中,有时候一些设置信息需要重复使用(例如设置打印信息.配置颜色.配置宽度等),如果每次都手动去敲每次都去创建会很麻烦.虽然宏使用的时候会占用内存,可是目前来说大部分开 ...