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格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...
随机推荐
- 【原创】分布式之elk日志架构的演进
引言 好久没写分布式系列的文章了,最近刚好有个朋友给我留言,想看这方面的知识.其实这方面的知识,网上各种技术峰会的资料一抓一大把.博主也是凑合着写写.感觉自己也写不出什么新意,大家也凑合看看. 日志系 ...
- A2D JS框架 - AOP封装
AOP在js中的实现,先看看用法吧: var A2D = $.noConflict();//不要误会,此乃我自己写的A2D框架,非jQuery function fn1(name, age) { co ...
- 一篇 SpringData+JPA 总结
概述 SpringData,Spring 的一个子项目,用于简化数据库访问,支持 NoSQL 和关系数据库存储 SpringData 项目所支持 NoSQL 存储 MongDB(文档数据库) Neo4 ...
- 在k-means或kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?
曼哈顿距离只计算水平或垂直距离,有维度的限制.另一方面,欧氏距离可用于任何空间的距离计算问题. 因为,数据点可以存在于任何空间,欧氏距离是更可行的选择.例如:想象一下国际象棋棋盘,象或车所 做的移动是 ...
- 中国科学技术大学统一身份认证系统CAS
CAS | Apereohttps://www.apereo.org/projects/cas 中国科学技术大学统一身份认证系统https://passport.ustc.edu.cn/login?s ...
- Windows10 Build 18298 桌面显示计算机(此电脑)
- API的设计与安全
前后端分离是个浪潮,原来只有APP客户端会考虑这些,现在连Web都要考虑前后端分离 . 这里面不得不谈的就是API的设计和安全性,这些个问题不解决好,将会给服务器安全和性能带来很大威胁 . API的设 ...
- python--logging日志
一个非常详细的日志使用请看这里:http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html # 导入日志模块 import loggin ...
- 数据处理 array json 格式 转换成 数组形式
处理这种数据应该使用的方式是 this.cities= res.data.data.cities.sort((a,b)=>{ //排序 进行字母排序 return a.pinyin[0].cha ...
- vue组件封装选项卡
<template> <myMenu :arr='arr' :arrcontent='content'></myMenu> </template> &l ...