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. mybatis-plus学习笔记(一)

    一.概述 概述见官网,不再赘述(简称mytatis-plus为MP) 在mybatis的基础之上,重点关注新特性:https://mp.baomidou.com/guide/#%E7%89%B9%E6 ...

  2. 开启Tomcat的manager页面访问

    如何进入Tomcat的manager页面 一张图解决! 找到conf目录下的tomcat-users.xml文件,打开. <role rolename="admin-gui" ...

  3. python--map()、reduce()

    map()和reduce()是一种在处理大数据时的重要思想,在平时也可以利用.在python中内置了这两个方法,map取映射的意思,reduce取归纳的意思. 一.map() map(func, ls ...

  4. 十五、bootstrap-select的使用方法

    参考来源https://www.cnblogs.com/nianyifenzhizuo/p/8119462.html 需要的css和js <link rel="stylesheet&q ...

  5. SQLSERVER事务日志已满 the transaction log for database 'xx' is full

    解决办法:清除日志 USE [master] GO ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE D ...

  6. Summer sell-off CodeForces - 810B (排序后贪心)

    Summer holidays! Someone is going on trips, someone is visiting grandparents, but someone is trying ...

  7. js变量以及其作用域

    一.变量的类型  Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量.例如: ...

  8. ReentrantLock源码分析

    参考: 五月的仓颉 ReentrantLock实现原理 活在梦里 AQS源码解读 重入锁是基于AQS实现的,它提供了公平锁和非公平锁两个版本的实现. public class ReentrantLoc ...

  9. 转:MD5(Message-Digest Algorithm 一种哈希算法)

    什么是MD5算法 MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash val ...

  10. LAMP 版本查看

    mysql 1 在终端下执行 mysql -V 2  mysql --help |grep Distrib 3 在mysql 里查看 select version() 4 在mysql 里查看 sta ...