1.NPOI导出(默认导出位置)

private void button1_Click(object sender, EventArgs e){List<Person> list = new List<Person>() {new Person(){Name="张三",Age="15",Email="123@qq.com" },new Person(){Name="李四",Age="16",Email="456@qq.com" },new Person(){Name="王五",Age="17",Email="789@qq.com" }};// 引用命名空间// using NPOI.HSSF.UserModel;// using NPOI.SS.UserModel;// using System.IO;//将List集合中的内容导出到Excel中//1、创建工作簿对象IWorkbook wkBook = new HSSFWorkbook();//2、在该工作簿中创建工作表对象ISheet sheet = wkBook.CreateSheet("学生信息"); //Excel工作表的名称//2.1向工作表中插入行与单元格for (int i = 0; i < list.Count; i++){//在Sheet中插入创建一行IRow row = sheet.CreateRow(i);//在该行中创建单元格//方式一//ICell cell = row.CreateCell(0);//cell.SetCellValue(list[i].Name);//方式二row.CreateCell(0).SetCellValue(list[i].Name); //给单元格设置值:第一个参数(第几个单元格);第二个参数(给当前单元格赋值)row.CreateCell(1).SetCellValue(list[i].Age);row.CreateCell(2).SetCellValue(list[i].Email);}//3、写入,把内存中的workBook对象写入到磁盘上FileStream fsWrite = File.OpenWrite("Person.xls");  //导出时Excel的文件名wkBook.Write(fsWrite);MessageBox.Show("写入成功!", "提示");fsWrite.Close(); //关闭文件流wkBook.Close();  //关闭工作簿fsWrite.Dispose(); //释放文件流
39         }

2.NPOI导出(用户可以指定导出位置)

private void button3_Click(object sender, EventArgs e){List<Person> list = new List<Person>() {new Person(){Name="张三",Age="15",Email="123@qq.com" },new Person(){Name="李四",Age="16",Email="456@qq.com" },new Person(){Name="王五",Age="17",Email="789@qq.com" }};//创建文件string fileName = "学生信息表";string saveFilePath = ""; //导出时文件的路径SaveFileDialog saveDialog = new SaveFileDialog();saveDialog.DefaultExt = "xls"; //默认文件扩展名saveDialog.Filter = "Excel文件|*.xls"; //文件名筛选字符串saveDialog.FileName = fileName; //导出文件名称saveDialog.ShowDialog(); //显示窗口saveFilePath = saveDialog.FileName; //文件路径// 引用命名空间// using NPOI.HSSF.UserModel;// using NPOI.SS.UserModel;// using System.IO;//将List集合中的内容导出到Excel中//1、创建工作簿对象IWorkbook wkBook = new HSSFWorkbook();//2、在该工作簿中创建工作表对象ISheet sheet = wkBook.CreateSheet("学生信息"); //Excel工作表的名称//2.1向工作表中插入行与单元格for (int i = 0; i < list.Count; i++){//在Sheet中插入创建一行IRow row = sheet.CreateRow(i);//在该行中创建单元格//方式一//ICell cell = row.CreateCell(0);//cell.SetCellValue(list[i].Name);//方式二row.CreateCell(0).SetCellValue(list[i].Name); //给单元格设置值:第一个参数(第几个单元格);第二个参数(给当前单元格赋值)row.CreateCell(1).SetCellValue(list[i].Age);row.CreateCell(2).SetCellValue(list[i].Email);}//3、写入,把内存中的workBook对象写入到磁盘上FileStream fsWrite = new FileStream(saveFilePath,FileMode.Create);wkBook.Write(fsWrite);MessageBox.Show("写入成功!", "提示");fsWrite.Close(); //关闭文件流wkBook.Close();  //关闭工作簿fsWrite.Dispose(); //释放文件流}

以上两种方法都需要引用这个类:Person类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _01NPOI的写入
{public class Person{public string Name { get; set; }public string Age { get; set; }public string Email { get; set; }}
}

3.NPOI导出(导出dataGridView数据:DGV中数据导出Excel)

public static void ExportExcel(string fileName, DataGridView dgv)
        {
            string saveFileName = "";
            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.DefaultExt = "xls";
            saveDialog.Filter = "Excel文件|*.xls";
            saveDialog.FileName = fileName;
            saveDialog.ShowDialog();
            saveFileName = saveDialog.FileName;

HSSFWorkbook workbook = new HSSFWorkbook();
            MemoryStream ms = new MemoryStream();

NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet("Sheet1");

int rowCount = dgv.Rows.Count+1;
            int colCount = dgv.Columns.Count;
            int r1;
            NPOI.SS.UserModel.IRow dataRow1 = sheet.CreateRow(0);

for (int i = 0; i < rowCount; i++)
            {
                NPOI.SS.UserModel.IRow dataRow = sheet.CreateRow(i);
                for (int j = 1; j < colCount; j++)
                {
                    if (i == 0)
                    {
                        r1 = i;
                    }
                    else
                    {
                        r1 = i - 1;
                    }
                    if (dgv.Columns[j].Visible && dgv.Rows[r1].Cells[j].Value != null)
                    {
                        NPOI.SS.UserModel.ICell cell = dataRow.CreateCell(j-1);
                        if (i == 0)
                        {
                            cell.SetCellValue(dgv.Columns[j].HeaderCell.Value.ToString());
                            continue;
                        }
                        cell.SetCellValue(dgv.Rows[r1].Cells[j].FormattedValue.ToString());
                    }
                    else
                    {
                        NPOI.SS.UserModel.ICell cell = dataRow.CreateCell(j-1);
                        cell.SetCellValue("");
                    }
                }
            }

workbook.Write(ms);
            FileStream file = new FileStream(saveFileName, FileMode.Create);
            workbook.Write(file);
            file.Close();
            workbook = null;
            ms.Close();
            ms.Dispose();
        }

C#——NPOI对Excel的操作、导入导出时异常处理(二)相关推荐

  1. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  2. VB中Excel 2010的导入导出操作

    VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...

  3. Java 利用EasyPoi做Excel模板的导入导出操作

    Java 利用EasyPoi做Excel模板的导入导出操作 项目背景 加入pom依赖 项目Excel模板图 代码实现 首先是实体类定义 Excel 实现导入 Excel的导出 结束语 项目背景 作为一 ...

  4. NPOI 在指定单元格导入导出图片

    NPOI 在指定单元格导入导出图片 Intro 我维护了一个 NPOI 的扩展(WeihanLi.Npoi),主要用来导入导出 Excel 数据,最近有网友提出了导入 Excel 的时候解析图片的需求 ...

  5. SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

    * 说明:复制表(只复制结构,源表名:a 新表名:b)       select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b ...

  6. [导入][转]精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

    * 说明:复制表(只复制结构,源表名:a 新表名:b)       select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b ...

  7. Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)

    Laravel Excel实现Excel/CSV文件导入导出(合并单元格,设置单元格样式) 这篇文章主要给大家介绍了关于在Laravel中如何使用Laravel Excel实现Excel/CSV文件导 ...

  8. ABAP 程序完成EXCEL文件的导入导出,OLE技术的应用

    今天主要学习了使用微软的OLE技术,用ABAP程序完成excel文件的导入导出处理. (一)常用的OLE函数: CALL METHOD  ,  CALL OBJECT ,   FREE OBJECT ...

  9. 前端实现excel文件的导入导出

    前端实现excel文件的导入导出 导入文件 导出文件 导入文件 html: <el-dropdown v-waves @command="handleBatchCommand" ...

  10. php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    @H_404_0@ 1.简介 @H_404_0@本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍 ...

最新文章

  1. ways to talk with girls
  2. C++基础回顾-强制类型转换
  3. Java动态代理与反射详解
  4. 27、jdbc操作数据库(4)
  5. C语言中变量的储存类别
  6. 数据库 统计数据收集 有什么作用_《原神》荒山孤剑录2/5收集汇总 荒山孤剑录作用是什么...
  7. python书籍pdf文档密码-Python玩转PDF的各种骚操作
  8. 怎么把python从c盘移到d盘_如何转移Pycharm的设置或者缓存到其他盘
  9. Spring IOC基础使用
  10. 微信支付:Native 模式 + 二维码生成技术!+ XML<> Map转换
  11. 方波、三角波、正弦波信号发生器
  12. 乌尔都语简介和Unicode由来
  13. pdf文件转换成word文本文档去水印怎么弄
  14. xps13蓝牙消失,设备管理器中出现“未知USB设备(设备描述符请求失败)”的问题
  15. python实现向qq邮箱发送邮件
  16. Muu云课堂V2 v2.2.4
  17. 解决雷电模拟器上Xposed框架不能用的问题。
  18. 乐城超市36计做微营销-王卫
  19. SushiSwap新任「主厨」对近期传闻的回应
  20. 传智播客设计学院简介网页代码

热门文章

  1. xtrabackup全量备份与全量恢复
  2. 游戏开发人员需要了解的5种ASO技术,苹果游戏aso优化
  3. 长江大学计算机基础试卷2018 2019,长江大学2017年第一学期-计算机基础试卷.doc
  4. win10微信卡顿_电脑一分钟小技巧:win10微信电脑端多开方法
  5. AB实验的高端玩法系列4- 实验渗透低?用户未被触达?CACE/LATE
  6. 怎么把做好的ps保存成图片_ps存成jpg格式的快捷键,ps如何另存为图片格式
  7. time库:Python的时间时钟处理
  8. CS系统设计与开发——人事档案管理系统的设计与实现
  9. rstudio中读取数据_Rstudio操作数据库
  10. 我的生信自学心得分享