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基础入门(旧版本)的更多相关文章

  1. 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本

    作者 | Jeskson 来源 | 达达前端小酒馆 从零基础入门MySQL数据库基础课 数据的概念,简介,安装与配置,Windows平台下MySQL的安装与配置. 数据库的概念:数据库是一个用来存放数 ...

  2. Bootstrap 4/3 页面基础模板 与 兼容旧版本浏览器

    Bootstrap 3 与 4 差别很大,目录文件结构.所引入的内容也不同,这里说说一下 Bootstrap 引入的文件.网页模板和兼容性问题.本网站刚刚搭建好,正好发一下文章原来测试网站. Boot ...

  3. .NET ORM 的 “SOD蜜”--零基础入门篇

    PDF.NET SOD框架不仅仅是一个ORM,但是它的ORM功能是独具特色的,我在博客中已经多次介绍,但都是原理性的,可能不少初学的朋友还是觉得复杂,其实,SOD的ORM是很简单的.下面我们就采用流行 ...

  4. Linux基础入门

    第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...

  5. 《信息安全系统设计基础》第一次实验报告--Linux 基础入门

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏 ...

  6. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  7. 20135231 —— Linux 基础入门学习

    20135231 何佳 学习计时:共12小时 读书:5 代码:2 作业:2 博客:3 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Li ...

  8. Linux基础入门(新版)(实验九-实验十二)

    实验九 简单文本入门 一.常用的文本处理命令 二.文本处理命令 1.tr 命令 tr 命令可以用来删除一段文本信息中的某些文字.或者将其进行转换. 使用方式: tr [option]...SET1 [ ...

  9. CSS3基础入门02

    CSS3 基础入门02 边框相关属性 border-radius 通过这个属性我们可以设置边框圆角,即可以将四个角设置为统一的圆角,也可以单独的设置具体的某一个角的圆角. grammer: borde ...

随机推荐

  1. 《PHP和MySQL Web开发》精彩的地方收录

    1.用SESSION来做的购物车,做成数组,用isbn对应书的数量作为二维数组保存 $new GET传值加入购物车,submit是修改数量,提交后的表单,通过历遍原来的数组,对应isbn修改最新的数量 ...

  2. openerp学习笔记 计算字段支持搜索

    示例1: # -*- encoding: utf-8 -*-import poolerimport loggingimport netsvcimport toolslogger = netsvc.Lo ...

  3. 深入剖析——float之个人见解

    浮动的原本作用仅仅是为了实现文字的环绕效果. 以下分别是html与css代码,显示效果如下图.因为两个div使用了float浮动属性,所以脱离了标准文档流.让父元素撑开高度,我们需要清除浮动. < ...

  4. poj 3740 Easy Finding 二进制压缩枚举dfs 与 DLX模板详细解析

    题目链接:http://poj.org/problem?id=3740 题意: 是否从0,1矩阵中选出若干行,使得新的矩阵每一列有且仅有一个1? 原矩阵N*M $ 1<= N <= 16 ...

  5. MYSQL创建多张表,相同表结构,不同表名

    #!/bin/bashfor i in {0..63}domysql -u$1 -p$2 -h127.0.0.1 <<EOFuse yoon;create table ivc_pre_de ...

  6. HDU3887 DFS序+ 线段树

    查询树上某个节点的子节点的标号小于其标号的数目. 一个trick是建立线段树之后,从标号小的向标号大的来做更新. 1: #include <cstdio> 2: #include < ...

  7. Java Day 02

    关键字 都是小写,类名首字母大写 标识符 1.数字不可以开头 2.不可以使用关键字 区分大小写 26个大小写字母.0-9._.$ 组成 main是关键字么? 注释 单行注释 // 多行注释 /* */ ...

  8. 部署图 Deployment Diagram

    UML部署图描述了一个运行时的硬件结点,以及在这些结点上运行的软件组件的静态视图. 部署图显示了系统的硬件,安装在硬件上的软件,以及用于连接异构的机器之间的中间件. 下面这张图介绍了部署图的基本内容: ...

  9. VS2010 配置opencv环境

    大家在使用opencv的时候肯定会面对这样一个问题:根据官网以及大多数教程提供的方法中,似乎每一次新建一个opencv的新项目以后都需要重新再配置"VC++目录"中的"包 ...

  10. Ubuntu 12.4 下升级 Subversion 1.7

    Ubuntu 12.04 默认使用的是Subversion 1.6,而Ubutnu12.10开始,就使用的是Subversion 1.7. 如果从别人的地方拷过来的SVN目录,在使用SVN命令时会报以 ...