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. WIN8,开机启动 需要管理员权限的程序

    1. 用WPF开发,需要管理员权限并开机启动,以写注册表的方式实现.仅写注册表只能启动一般权限的程序. 2. 考虑这样实现: 程序以一般权限启动,启动以后申请管理员权限. 实现: App类中重写OnS ...

  2. lua table integer index 特性

    table.maxn (table) Returns the largest positive numerical index of the given table, or zero if the t ...

  3. Spring事务传播属性

    Spring 对事务控制的支持统一在 TransactionDefinition 类中描述,该类有以下几个重要的接口方法: int getPropagationBehavior():事务的传播行为 i ...

  4. LoadRunner连接Genymotion

  5. C# 文件压缩加解密

    1.这种方式也可以做到对文件的加密压缩,解密解压缩,只是在压缩和解压缩时会出现压缩窗口 1.1加密压缩 strzipPath:压缩包路径 strtxtPath:待压缩的文件路径 password:加密 ...

  6. 服务器支持AspJpeg和JMail45_free.msi组件

     解决办法: 1.在服务器上安装上AspJpeg和JMail45_free.msi后, 2.在cmd中输入regsvr32 c:/windows/SysWOW64/aspjpeg.dll 3.把网站对 ...

  7. Javascript模块化编程(二):AMD规范(转)

    这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要 ...

  8. Windows Phone 十七、Socket

    Socket 常用类型 StreamSocket:Socket对象 StreamSocketListener:Socket监听对象,适用于服务端 服务端代码 <Grid x:Name=" ...

  9. windows批处理的介绍

    扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命 ...

  10. 快速排序算法 java 实现

    快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...