NPOI基础入门(旧版本)
1.常用的类与方法
工作本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:获取或设置字体加粗
2.导出和导入excel实例
namespace WindowsFormsApplication1
{
public partial class NPOITest : Form
{
public NPOITest()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ManagerInfoBLL mibBll=new ManagerInfoBLL();
var list=mibBll.GetList();
dataGridView1.DataSource = list;
//1.创建workbook,不指定参数,表示创建一个新的工作本
HSSFWorkbook workbook=new HSSFWorkbook();
//2.创建sheet
HSSFSheet sheet = workbook.CreateSheet("管理员");
//3.创建row
HSSFRow row = sheet.CreateRow(0);
//4.创建cell
HSSFCell cell0 = row.CreateCell(0);
cell0.SetCellValue("管理员列表");
//5.设置合并单元格
sheet.AddMergedRegion(new NPOI.HSSF.Util.Region(0, 0, 0, 3));
//6.设置单元格居中
HSSFCellStyle styleTitle = workbook.CreateCellStyle();
styleTitle.Alignment = 2;//居中
cell0.CellStyle = styleTitle;
//6.1设置字体
HSSFFont fontTitle = workbook.CreateFont();
fontTitle.FontHeightInPoints = 14;
styleTitle.SetFont(fontTitle);
//7.创建标题行
//7.1创建行
HSSFRow rowTitle = sheet.CreateRow(1);
//7.2创建单元格
HSSFCell ceelTitle0 = rowTitle.CreateCell(0);
ceelTitle0.SetCellValue("编号");
ceelTitle0.CellStyle = styleTitle;
HSSFCell cellTitle1 = rowTitle.CreateCell(1);
cellTitle1.SetCellValue("姓名");
cellTitle1.CellStyle = styleTitle;
HSSFCell cellTitle2 = rowTitle.CreateCell(2);
cellTitle2.SetCellValue("密码");
cellTitle2.CellStyle = styleTitle;
HSSFCell cellTitle3 = rowTitle.CreateCell(3);
cellTitle3.SetCellValue("类型");
cellTitle3.CellStyle = styleTitle;
//8.循环遍历集合,创建正文数据
//8.1遍历集合
int rowIndex = 2;
foreach (var mi in list)
{
//8.2创建行
HSSFRow rowData = sheet.CreateRow(rowIndex++);
//8.3创建数据单元格
HSSFCell cellData0 = rowData.CreateCell(0);
cellData0.SetCellValue(mi.MId);
HSSFCell cellData1 = rowData.CreateCell(1);
cellData1.SetCellValue(mi.MName);
HSSFCell cellData2 = rowData.CreateCell(2);
cellData2.SetCellValue(mi.MPwd);
HSSFCell cellData3 = rowData.CreateCell(3);
cellData3.SetCellValue(mi.MType==0?"员工":"经理");
}
//保存工作本
FileStream stream=new FileStream(@"C:\Users\LWP1398\Desktop\t1.xlx",FileMode.Create);
workbook.Write(stream);
stream.Close();
stream.Dispose();
}
private void button2_Click(object sender, EventArgs e)
{
//1.读取excel数据,存入list中
List<ManagerInfo> list=new List<ManagerInfo>();
//1.1读取文件
using (FileStream stream=new FileStream(@"C:\Users\LWP1398\Desktop\t1.xlx", FileMode.Open))
{
//1.2创建workbook
HSSFWorkbook workbook=new HSSFWorkbook(stream);
//1.3读取sheet
HSSFSheet sheet = workbook.GetSheetAt(0);
//1.4读取正文数据,因为0,1行为标题,直接跳过
int rowIndex = 2;
HSSFRow row = sheet.GetRow(rowIndex++);
while (row!=null)
{
//读到数据时返回行对象,如果没有读到则返回null
//1.5读取一行中的对象
ManagerInfo mi=new ManagerInfo();
mi.MId=Convert.ToInt32(row.GetCell(0).NumericCellValue) ;
mi.MName = row.GetCell(1).StringCellValue;
mi.MPwd = row.GetCell(2).StringCellValue;
mi.MType = row.GetCell(3).StringCellValue == "经理" ? 1: 0;
list.Add(mi);
row = sheet.GetRow(rowIndex++);
}
}
//2.将list赋值给datagridview
dataGridView1.DataSource = list;
}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 3)
{
e.Value = Convert.ToInt32(e.Value) == 0 ? "员工" : "经理";
}
}
}
}
NPOI基础入门(旧版本)的更多相关文章
- 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本
作者 | Jeskson 来源 | 达达前端小酒馆 从零基础入门MySQL数据库基础课 数据的概念,简介,安装与配置,Windows平台下MySQL的安装与配置. 数据库的概念:数据库是一个用来存放数 ...
- Bootstrap 4/3 页面基础模板 与 兼容旧版本浏览器
Bootstrap 3 与 4 差别很大,目录文件结构.所引入的内容也不同,这里说说一下 Bootstrap 引入的文件.网页模板和兼容性问题.本网站刚刚搭建好,正好发一下文章原来测试网站. Boot ...
- .NET ORM 的 “SOD蜜”--零基础入门篇
PDF.NET SOD框架不仅仅是一个ORM,但是它的ORM功能是独具特色的,我在博客中已经多次介绍,但都是原理性的,可能不少初学的朋友还是觉得复杂,其实,SOD的ORM是很简单的.下面我们就采用流行 ...
- Linux基础入门
第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...
- 《信息安全系统设计基础》第一次实验报告--Linux 基础入门
北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全设计基础 班级:1352 姓名:何伟钦 学号:20135223 成绩: 指导教师:娄嘉鹏 ...
- Linux基础入门学习笔记20135227黄晓妍
学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用L ...
- 20135231 —— Linux 基础入门学习
20135231 何佳 学习计时:共12小时 读书:5 代码:2 作业:2 博客:3 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Li ...
- Linux基础入门(新版)(实验九-实验十二)
实验九 简单文本入门 一.常用的文本处理命令 二.文本处理命令 1.tr 命令 tr 命令可以用来删除一段文本信息中的某些文字.或者将其进行转换. 使用方式: tr [option]...SET1 [ ...
- CSS3基础入门02
CSS3 基础入门02 边框相关属性 border-radius 通过这个属性我们可以设置边框圆角,即可以将四个角设置为统一的圆角,也可以单独的设置具体的某一个角的圆角. grammer: borde ...
随机推荐
- Win7开始菜单之【附件】不全解决方案
Win7开始菜单之[附件]不全解决方案 1:打开你的[开始]菜单,转到附件,如果你发现你的附件里的“附件”不是那么全的话,如下图:来吧,我告诉你如何恢复它到最初的模样……哦,或许如果你不急于恢复的话, ...
- jquery 在ie10中post数据,最终数据丢失的BUG修复
最近在做项目的时候,发现ie10或者360之类套壳的浏览器(ie10) 在jquery调用post数据的时候,真实的请求并没有上传数据,原因不表,请见 http://stackoverflow.com ...
- 如何参与linux 内核开发
如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维护者. 英文版维护者: Gre ...
- 对现有Hive的大表进行动态分区
分区是在处理大型事实表时常用的方法.分区的好处在于缩小查询扫描范围,从而提高速度.分区分为两种:静态分区static partition和动态分区dynamic partition.静态分区和动态分区 ...
- 一次失败的面试——IBM电话面试
前几天接到IBM的电话面试了,虽然被PASS了,还是发个博记录一下吧.这大概是我第一次比较正式的面试了,虽然只是通过电话,但是还是暴露出了自己的很多问题,总结下,前事不忘,后事之师嘛.:) 一号上午接 ...
- 《C++Primer》复习——with C++11 [4]
考虑到STL的掌握主要靠的是练习,所以对于STL这部分,我把书中的练习都做一遍,加深印象.这些练习是第9.10.11.17章的,分别是顺序容器.泛型算法和关联容器等. ——10月22日 /*----- ...
- SQL Server数据库文件存储目录转移
USE master GO DECLARE @DBName sysname, ) DECLARE @DB table( name sysname, physical_name sysname) BEG ...
- WPFMediaKit照相功能
最近写的一个WPF照相功能,往各位吐槽,提供优化 在WPF 设计器中添加如下代码 xmlns:wpfmedia="clr-namespace:WPFMediaKit.DirectShow.C ...
- 第五周技术博客发表 web 网页开发
<html><head> <title> HTML</title></head><body > <h1>会员注册界面 ...
- Problem 1016 咒文卷轴 优先队列+前缀和+rmq
题目链接: 题目 Problem 1016 咒文卷轴 Time Limit: 3000 mSec Memory Limit : 131072 KB 问题描述 小Y 是一个魔法师,有一天他获得了一卷神秘 ...