用NPOI完成公司任务(主要就是导入导出操作)
注意要先添加程序集的引用
导出到excel:
public override IWorkbook writeExecl(string filePath, DataTable dt)
{
if (File.Exists(filePath))
{
File.Delete(filePath);
}
IWorkbook wk = new XSSFWorkbook(); ;
//创建一个名称为data的表
ISheet tb = wk.CreateSheet("data");
//表头
IRow row1 = tb.CreateRow();
int k = ;
foreach (DataColumn dc in dt.Columns)
{
ICell cell1 = row1.CreateCell(k); cell1.SetCellValue(getChinaName(dc.ColumnName));
k = k + ;
} //表体
for (int i = ; i < dt.Rows.Count; i++)
{
IRow row = tb.CreateRow(i + );
for (int j = ; j < dt.Columns.Count; j++)
{
if (j == )
{
ICell cell = row.CreateCell(j);
string value = dt.Rows[i][j].ToString();
cell.SetCellValue(tranSchoolType(value));
}
else
{
ICell cell = row.CreateCell(j);
string value = dt.Rows[i][j].ToString();
cell.SetCellValue(value);
}
} } string uploadPath = HttpContext.Current.Server.MapPath(filePath); //打开一个xls文件,如果没有则自行创建 //如果存在myxls.xls文件则在创建是不要打开该文件!
using (FileStream fs = File.OpenWrite(uploadPath))
{ //向打开的这个xls文件中写入mySheet表并保存。
wk.Write(fs); }
}
是用excel2003还是excel2007可以用下面这个方法:
static IWorkbook isExcelType(string filePath)
{
IWorkbook wk = null;
FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
if (filePath.IndexOf(".xlsx") > ) // 2007版本
wk = new XSSFWorkbook(fs);
else if (filePath.IndexOf(".xls") > ) // 2003版本
wk = new HSSFWorkbook(fs); fs.Close();
return wk; }
从excel读取数据:
List<Dictionary<string, string>> readExcel(string filePath)
{
IWorkbook wk = null;
wk = isExcelType(filePath);
ISheet sheet = wk.GetSheetAt();
List<string> names = new List<string>();//LastRowNum 是当前表的总行数
for (int j = 1; j <= sheet.LastRowNum; j++)
{ for (int j = 1; j <= sheet.LastRowNum; j++)
{
//读取当前行数据
IRow row = sheet.GetRow(j);
if (row != null)
{
//LastCellNum 是当前行的总列数
for (int k = 0; k <= row.LastCellNum; k++)
{
//当前表格
ICell cell = row.GetCell(k);
if (cell != null)
{
string name = cell.ToString();
names.Add(name);
}
}
}
}
List<Dictionary<string, string>> lists = new List<Dictionary<string, string>>();
return lists;
}
好了,以上就简单的完成导入导出了!
用NPOI完成公司任务(主要就是导入导出操作)的更多相关文章
- c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...
- Winform开发框架之通用数据导入导出操作的事务性操作完善
1.通用数据导入导出操作模块回顾 在我的Winfrom开发框架里面,有一个通用的导入模块,它在默默处理这把规范的Excel数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- VB中Excel 2010的导入导出操作
VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...
- NPOI、MyXls、Aspose.Cells 导入导出Excel(转)
Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...
- NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx 格式
下载地址 http://npoi.codeplex.com/releases 下面放一个 NPOIHelper 助手类吧,也不是我写的- NpoiExcelHelper 可以生成xlsx格式publi ...
- net core WebApi——使用NPOI导入导出操作
目录 前言 NPOI 测试 小结 @ 前言 时间过得好快,在之前升级到3.0之后,就感觉好久没再动过啥东西了,之前有问到Swagger的中文汉化,虽说我觉得这种操作的意义不是太大,也是多少鼓捣了下,其 ...
- NPOI读写Excel组件封装Excel导入导出组件
后台管理系统多数情况会与Excel打交道,常见的就是Excel的导入导出,对于Excel的操作往往是繁琐且容易出错的,对于后台系统的导入导出交互过程往往是固定的,对于这部分操作,我们可以抽离出公共组件 ...
- Sqoop_mysql,hive,hdfs导入导出操作
前言: 搭建环境,这里使用cdh版hadoop+hive+sqoop+mysql 下载 hadoop-2.5.0-cdh5.3.6.tar.gz hive-0.13.1-cdh5.3.6.tar.gz ...
随机推荐
- ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第九天(非原创)
文章大纲 一.课程介绍二.今日功能介绍三.项目源码与资料下载四.参考文章 一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用.(2)第二天:框架的整合 ...
- JavaSE_2_关键字
1.介绍一下Syncronized锁,如果用这个关键字修饰一个静态方法,锁住了什么?如果修饰成员方法,锁住了什么? synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下四种: ...
- Json Web Token 简介
1.Json Web Token是干什么 简称JWT,在HTTP通信过程中,进行身份认证. 我们知道HTTP通信是无状态的,因此客户端的请求到了服务端处理完之后是无法返回给原 ...
- A promise tomorrow is worth a lot less than trying today.
A promise tomorrow is worth a lot less than trying today.明日的承诺远不及今日的行动.
- 用sql语句按周、按月、按季、按年统计
--按mySql语法统计按周,月,季,年.income为合计的价格字段,createDate为交易时间. select sum(income)as revenue,week(createDate) a ...
- GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除)
GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除) 之前有一个范例,相同的结果可以用两种作法来实践 [GridView] 资料系结表达 ...
- 流媒体 5——MPEG声音
1. 听觉系统的感知特性: MPEG声音的数据压缩和编码不是依据波形本身的相关性和模拟人的发音器官的特性,而是利用人的听觉系统的特性来达到压缩声音数据的目的,这种压缩编码称为感知声音编码. 许多科学工 ...
- SAP成都研究院C4C光明左使:SAP Cloud for Customer 使用SAP UI5的独特之处
大家好,今天的文章来自我的同事,Yang Joey. 2017年7月,SAP成都研究院C4C开发团队刚刚建立.某个周一早晨的Scrum meeting,新出现一位眉清目秀的小伙子,向大家自我介绍:&q ...
- Aizu 0121 Seven Puzzle(变进制数的完美hash)
一遍预处理跑完所有情况,O(1)回答就好.状态记录我用的康拓和逆康拓. #include<bits/stdc++.h> using namespace std; ]; ]; ]; int ...
- 5分钟了解Java 12 八大新特性
Java 12 终于发布了,我们一起来看一看 Java 12 中的新特性.通过本文可以在5分钟内快速了解 Java 12 新特性. 1 Switch 表达式 使用Java 12,switch不仅可以作 ...