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. Python开发【第一篇】Python基础之装饰器

    写代码要遵循开发封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即: 封闭:已实现的功能代码块开放:对扩展开发 #s2 ...

  2. 图解 CSS: 理解样式表的逻辑(转载)

    原文:http://www.cnblogs.com/del/archive/2009/02/01/1382141.html 样式表可以是外部的.内联的或嵌入的; 链接外部样式文件一般是:<lin ...

  3. python之else总结

    python中除了if...elif...else..还有while...else, for...else..., try...except...else...finally... 不管哪种else, ...

  4. mysql笔记整理

    删除整个表 TRUNCATE TABLE 表名; 持久链接 自动提交

  5. ActiveMQ使用记录

    1.在Linux中安装ActiveMQ 官方文档地址:http://activemq.apache.org/getting-started.html#GettingStarted-StartingAc ...

  6. iOS 进阶 第八天(0407)

    0407 UIPickerView.UIDatePicker和UIToolBar请参见视频和代码 pch文件 #ifdef __OBJC__ //在这里面写oc的引用,比如一些oc的头文件或者NSLo ...

  7. Android之EditText

    EditText 属性介绍: maxLength:设置最大输入字符数. hint:设置空白提示文字. textColorHint:设置空白提示文字的颜色. enabled:设置是否可编辑(可以获得焦点 ...

  8. android 开发自建wifi热点的默认ip

    android 开发自建wifi热点的默认ip是:192.168.43.1  (小米3测试)

  9. android 中设置HttpURLConnection 超时并判断是否超时

    设置超时: URL url1 = new URL(url); HttpURLConnection conn = (HttpURLConnection) url1.openConnection(); c ...

  10. boost::bind

    bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定的参数个数和要绑定的调用对象类型,总共有十个不同的形式,但它们的名字都叫bind. bind接受的第一个参数必须是一个可调用对象f,包括函 ...