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. .html(),.text()和.val()的差异总结:

    .html(),.text()和.val()的差异总结: 1.html(),.text(),.val()三种方法都是用来读取选定元素的内容:只不过.html()是用来读取元素的html内容(包括htm ...

  2. RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

    最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...

  3. lkx开发日志2-第一次团队讨论

    遇到的问题 冰球与击球手碰撞的形式有两种.第一种:击球手的速度不指向冰球圆心,这样碰撞后冰球会旋转.第二种:击球手的速度指向冰球圆心,直接科运用动量定理计算两者速度的变化.考虑到时间限制,团队假设冰球 ...

  4. iis配置js支持读取json文件配置

    默认情况下,iis不支持解析.json文件,这就需要我们自己在iis下配置方法一:iis配置1.点击开始菜单选择控制面板: 2.控制面板内点击管理工具,选择Internet信息服务(IIS)管理器. ...

  5. paper 130:MatLab分类器大全(svm,knn,随机森林等)

    train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出).1.逻辑回归(多项式 ...

  6. 夺命雷公狗----Git---2---基本用法

    首先我们来创建一个git仓库,其实命令也是很简单的.. git init 其实在创建完成后,该目录会多了一个.git的文件夹,但该文件夹是隐藏的.... 其实这就是一个git仓库,特别建议不要在这个目 ...

  7. Ubuntu14.04安装CMake3.6.3

    准备工作:官网下载cmake-3.6.3.tar.gz(https://cmake.org/download/) 1.解压文件tar -xvf cmake-3.6.3.tar.gz,并修改文件权限ch ...

  8. 2.多线程-GCD

    1.基本概念 同步任务:在当前线程按顺序执行,不开启新的线程 异步任务:有开新线程的欲望   串行队列:一个一个执行 并行队列:多个任务同时执行 --------------------------- ...

  9. Django Nginx+uwsgi 安装配置

    使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttp ...

  10. Windows Azure Storage 之 Retry Policy (用来处理短暂性错误-Transient Fault)

    在使用Windows Azure Storage Service 的时候, 通常会遇到各种各样的问题. 例如网络连接不稳定,导致请求没有发出去.删除一个Blob Container 之后又立刻创建同名 ...