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导入、导出的更多相关文章

  1. 利用反射实现通用的excel导入导出

    如果一个项目中存在多种信息的导入导出,为了简化代码,就需要用反射实现通用的excel导入导出 实例代码如下: 1.创建一个 Book类,并编写set和get方法 package com.bean; p ...

  2. Excel导入导出的业务进化场景及组件化的设计方案(上)

    1:前言 看过我文章的网友们都知道,通常前言都是我用来打酱油扯点闲情的. 自从写了上面一篇文章之后,领导就找我谈话了,怕我有什么想不开. 所以上一篇的(下)篇,目前先不出来了,哪天我异地二次回忆的时候 ...

  3. 关于Excel导入导出的用例设计

    目前,为方便操作,很多系统都会增加批量导入导出的功能.文件导入导出一般格式都是excel.由于用户直接在excel在填写内容,无法控制填写的格 式,加上excel解析比较困难,所以一般涉及到excel ...

  4. ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...

  5. Excel导入导出帮助类

    /// <summary>    /// Excel导入导出帮助类    /// 记得引入 NPOI    /// 下载地址   http://npoi.codeplex.com/rele ...

  6. 一个基于POI的通用excel导入导出工具类的简单实现及使用方法

    前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...

  7. Octopus——excel导入导出工具

    Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...

  8. TP5.0 excel 导入导出

    引第三方的phpexcel类库放到 ThinkPHP\Library\Vendor\demo下,自己建的文件夹demo 再将Excel.class放到ThinkPHP\Library\Org\clas ...

  9. Mego(04) - NET简单实现EXCEL导入导出

    前言 相信做过信息系统的朋友都会遇到EXCEL导入导出的相关开发,做过不少EXCEL导入导出后总结起来大致有如下几种方式实现: ADO.NET的OldDb或ODBC连接EXCEL使用DataTable ...

  10. JeeSite中Excel导入导出

    在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...

随机推荐

  1. Vue-发布订阅机制(bus)实现非父子组件的传值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Java性能优化之String字符串优化

    字符串是软件开发中最重要的对象之一.通常,字符串对象在内存中是占据了最大的空间块,因此如何高效地处理字符串,必将是提高整体性能的关键所在. 1.字符串对象及其特点 Java中八大基本数据类型没有Str ...

  3. Netty入门(一)之webSocket聊天室

    一:简介 Netty 是一个提供 asynchronous event-driven (异步事件驱动)的网络应用框架,是一个用以快速开发高性能.高可靠性协议的服务器和客户端. 换句话说,Netty 是 ...

  4. mybatis-高级结果映射之一对多

    目录 1 数据准备 1.2 实体类, 接口和XML 2 一对多映射 2.1 collection集合映射 2.1.1 创建结果实体类 2.1.2 创建结果集 2.1.3 创建对应的方法和XML 2.1 ...

  5. mskitten

    简介 一个普普通通的Java程序员,在某制造业外企工作. 技术栈 主要是Core Java,准备向Java Web挺进. 非计算机专业学生,在努力提升计算机基本素养(操作系统.算法).有好书好资源欢迎 ...

  6. 体验usually.js的管道函数——pipe函数

    体验usually.js的管道函数——pipe函数 usually.js 是一个面向现代 Web 开发的 JavaScript 函数库,基于 ES6 开发.最新版本2.4.1,最新版本usually. ...

  7. python代码风格指南:pep8 中文版

    本文档所提供的编码规范,适用于主要的Python发行版中组成标准库的Python代码.请参阅PEP关于Python的C实现的C编码风格指南的描述. 本文档和PEP257(文档字符串规范)改编自Guid ...

  8. awk分析mysql状态

    今天是腊月27,明天是腊月28,一到过年,就习惯说农历,而不说公历.这两天挺闲的,就再造一把. 话说Linux处理文本工具有三剑客,awk.grep.sed,其中awk最为厉害,grep也挺是常用.今 ...

  9. K 班1-7,alpha,beta 作业成绩汇总

    K 班1-7,alpha,beta 作业成绩汇总 千帆竞发 详细得分 短学号 名 1 2 3 4 5 6 7 alpha beta TOTAL 505 基智 4.55 1 -2 0 0 -10 4.3 ...

  10. python读取文件内的IP信息 练习

    代码如下: #导包 import fileinput import re def readArw(): for line in fileinput.input(r"G:/raw.txt&qu ...