excel导入、导出
http://blog.csdn.net/cjh200102/article/details/12557599
NPOI
工作本HSSFWorkbook
构造方法,无参表示创建一个新的工作本,可以接收一个流用于打开一个现有的工作本
方法CreateSheet(索引):创建指定索引的sheet对象
方法GetSheetAt(索引):根据索引获取sheet对象
方法CreateCellStyle():创建单元格样式对象
方法CreateFont():创建字体对象
方法Write(stream):将工作本输出到流中
工作表HSSFSheet
方法CreateRow(索引):创建指定索引的行
方法GetRow(索引):根据索引获取行
方法AddMergedRegion():设置合并区域,参数包括开始行索引、开始列索引、结束行索引、结束列索引
方法SetColumnWidth(索引,宽度):设置指定列的宽度,单位是一个字符宽度的256分之1(一个汉字占用两个字符)
属性FirstRowNum、LastRowNum:获取第一行、最后一行的索引值
行HSSFRow
方法CreateCell(索引):创建指定索引的行
方法GetCell(索引):根据索引获取单元格
属性HeightInPoints:指定或设置高度
单元格HSSFCell
方法SetCellValue():设置单元格中的值
属性***CellValue:获取单元格中指定类型的值,如果类型不匹配则抛异常
属性CellStyle:获取或设置单元格样式
单元格样式HSSFCellStyle
方法SetFont(字体对象):设置字体样式
属性Alignment:水平对齐,1左,2中,3右
字体对象HSSFFont
属性FontHeightInPoints:获取或设置字体大小
属性Boldweight:获取或设置字体加粗
导出
//创建一个工作本
HSSFWorkbook wb = new HSSFWorkbook();
//创建sheet
ISheet sheet = wb.CreateSheet("测试");
//设置头合并单元格
sheet.AddMergedRegion(new CellRangeAddress(,,,));
//创建row
IRow row0 = sheet.CreateRow();
//创建cell
ICell cell = row0.CreateCell();
//为cell设置值
cell.SetCellValue ("demo");
//创建cellStyle
ICellStyle cellStyle = wb.CreateCellStyle();
//字体居中
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
//为cell添加样式
cell.CellStyle = cellStyle;
//创建标题行
IRow row1 = sheet.CreateRow();
//创建cell
ICell cell0 = row0.CreateCell();
cell0.SetCellValue("编号");
cell0.CellStyle = cellStyle;
ICell cell1 = row0.CreateCell();
cell1.SetCellValue("类型");
cell1.CellStyle = cellStyle;
//设置创建行的索引,因为已经创建过两行,所以从索引2开始创建
int index = ;
//遍历datatable创建row、cell
foreach (DataRow item in dt.Rows)
{
IRow row = sheet.CreateRow(index++);
ICell cellFirst = row.CreateCell();
cellFirst.SetCellValue(item["BookTypeId"].ToString());
ICell cellSecond = row.CreateCell();
cellSecond.SetCellValue(item["BookTypeName"].ToString());
}
//创建或打开文件
using (FileStream fs = new FileStream(@"D:\Users\Desktop\demo.xls",FileMode.OpenOrCreate))
{
//往文件里写数据
wb.Write(fs);
fs.Close();
}
导入
List<BookType> list = new List<BookType>();
using (FileStream fs=new FileStream(@"D:\Users\Desktop\demo.xls",FileMode.OpenOrCreate))
{
HSSFWorkbook wb = new HSSFWorkbook(fs);
ISheet sheet = wb.GetSheetAt();
int index = ;
IRow row = sheet.GetRow();
while (row!=null)
{
list.Add(new BookType()
{
BookTypeId = Convert.ToInt32(row.GetCell().StringCellValue),
BookTypeName = row.GetCell().StringCellValue
});
row = sheet.GetRow(index++);
}
excel导入、导出的更多相关文章
- 利用反射实现通用的excel导入导出
如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; p ...
- Excel导入导出的业务进化场景及组件化的设计方案(上)
1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候 ...
- 关于Excel导入导出的用例设计
目前,为方便操作,很多系统都会增加批量导入导出的功能.文件导入导出一般格式都是excel.由于用户直接在excel在填写内容,无法控制填写的格 式,加上excel解析比较困难,所以一般涉及到excel ...
- ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...
- Excel导入导出帮助类
/// <summary> /// Excel导入导出帮助类 /// 记得引入 NPOI /// 下载地址 http://npoi.codeplex.com/rele ...
- 一个基于POI的通用excel导入导出工具类的简单实现及使用方法
前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...
- Octopus——excel导入导出工具
Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...
- TP5.0 excel 导入导出
引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo 再将Excel.class放到ThinkPHP\Library\Org\clas ...
- Mego(04) - NET简单实现EXCEL导入导出
前言 相信做过信息系统的朋友都会遇到EXCEL导入导出的相关开发,做过不少EXCEL导入导出后总结起来大致有如下几种方式实现: ADO.NET的OldDb或ODBC连接EXCEL使用DataTable ...
- JeeSite中Excel导入导出
在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...
随机推荐
- 百度智能手环方案开源(含源码,原理图,APP,通信协议等)
分享一个百度智能手环开源项目的设计方案资料. 项目简介 百度云智能手环的开源方案是基于Apache2.0开源协议,开源内容包括硬件设计文档,原理图.ROM.通讯协议在内的全套方案,同时开放APP和云服 ...
- vue编程式导航
vue项目中使用到了组件间传值,通过路由跳转实现从产品页进入产品详情页查看功能. 使用了this.$router.push(编程式导航) product页面中:因为只需要遮住产品列表页来显示产品详情页 ...
- WPF效果(GIS二维篇)
距离上次发东西已经过去了貌似不知多少天了,突然发现自己懒得总结了.这毛病感觉不好,还得写点东西来充实一下自己,不然这样整天浑浑噩噩的过日子,也太平淡了,不管怎么说,起码得给自己的经历留下点东西吧.闲话 ...
- 史上最全面的Docker容器引擎使用教程
目录 1.Docker安装 1.1 检查 1.2 安装 1.3 镜像加速 1.4 卸载Docker 2.实战Nginx 3.Docker命令小结 4.DockerFile创建镜像 4.1 Docker ...
- 你分得清楚Maven的聚合和继承吗?
用了 Maven 好几年了,许多人还是只懂得简单的依赖坐标.对于 Maven 的聚合和继承还是一知半解,甚至很多人以为是同一个东西.但其实聚合是用于快速构建项目,是表示项目与子项目之间的关系.而继承则 ...
- Pytest+Allure定制报告
前言: 最近在研究接口自动化的框架,好的测试报告在整个测试框架起到至关重要的部分.终于被我发现一个超好用的报告框架,不仅报告美观,而且方便CI集成. 就是它,就是它:Allure Test Repor ...
- 新浪2017校园招聘---C++后台研发
一共10道题目,难度不大,就是题量大,时间短. 1. 编程 写一个函数,求出一字符串的所有排列. 2. 编程 实现一个在32位系统下把字符串转换成浮点数的函数 floa ...
- 结对项目——图形界面实现与dll动态链接
先来一发软件截图~~~ 生成题目的界面 测评界面 第三块本来准备做一个文件历史记录的界面,但是由于时间不够,暂时还没做完. 图形界面的设计与实现 由于对传统的对话框风格不太满意,所以这次作业的图形界面 ...
- Elasticsearch之配置详解
Cluster 集群名称,默认为elasticsearch: cluster.name: elasticsearch 设置一个节点的并发数量,有两种情况,一种是在初始复苏过程中: cluster.ro ...
- 多线程系列之七:Read-Write Lock模式
一,Read-Write Lock模式 在Read-Write Lock模式中,读取操作和写入操作是分开考虑的.在执行读取操作之前,线程必须获取用于读取的锁.在执行写入操作之前,线程必须获取用于写入的 ...