C#——NPOI对Excel的操作、导入导出时异常处理(二)
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的操作、导入导出时异常处理(二)相关推荐
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- VB中Excel 2010的导入导出操作
VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...
- Java 利用EasyPoi做Excel模板的导入导出操作
Java 利用EasyPoi做Excel模板的导入导出操作 项目背景 加入pom依赖 项目Excel模板图 代码实现 首先是实体类定义 Excel 实现导入 Excel的导出 结束语 项目背景 作为一 ...
- NPOI 在指定单元格导入导出图片
NPOI 在指定单元格导入导出图片 Intro 我维护了一个 NPOI 的扩展(WeihanLi.Npoi),主要用来导入导出 Excel 数据,最近有网友提出了导入 Excel 的时候解析图片的需求 ...
- SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
* 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b ...
- [导入][转]精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
* 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b ...
- Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)
Laravel Excel实现Excel/CSV文件导入导出(合并单元格,设置单元格样式) 这篇文章主要给大家介绍了关于在Laravel中如何使用Laravel Excel实现Excel/CSV文件导 ...
- ABAP 程序完成EXCEL文件的导入导出,OLE技术的应用
今天主要学习了使用微软的OLE技术,用ABAP程序完成excel文件的导入导出处理. (一)常用的OLE函数: CALL METHOD , CALL OBJECT , FREE OBJECT ...
- 前端实现excel文件的导入导出
前端实现excel文件的导入导出 导入文件 导出文件 导入文件 html: <el-dropdown v-waves @command="handleBatchCommand" ...
- php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
@H_404_0@ 1.简介 @H_404_0@本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍 ...
最新文章
- ways to talk with girls
- C++基础回顾-强制类型转换
- Java动态代理与反射详解
- 27、jdbc操作数据库(4)
- C语言中变量的储存类别
- 数据库 统计数据收集 有什么作用_《原神》荒山孤剑录2/5收集汇总 荒山孤剑录作用是什么...
- python书籍pdf文档密码-Python玩转PDF的各种骚操作
- 怎么把python从c盘移到d盘_如何转移Pycharm的设置或者缓存到其他盘
- Spring IOC基础使用
- 微信支付:Native 模式 + 二维码生成技术!+ XML<> Map转换
- 方波、三角波、正弦波信号发生器
- 乌尔都语简介和Unicode由来
- pdf文件转换成word文本文档去水印怎么弄
- xps13蓝牙消失,设备管理器中出现“未知USB设备(设备描述符请求失败)”的问题
- python实现向qq邮箱发送邮件
- Muu云课堂V2 v2.2.4
- 解决雷电模拟器上Xposed框架不能用的问题。
- 乐城超市36计做微营销-王卫
- SushiSwap新任「主厨」对近期传闻的回应
- 传智播客设计学院简介网页代码
热门文章
- xtrabackup全量备份与全量恢复
- 游戏开发人员需要了解的5种ASO技术,苹果游戏aso优化
- 长江大学计算机基础试卷2018 2019,长江大学2017年第一学期-计算机基础试卷.doc
- win10微信卡顿_电脑一分钟小技巧:win10微信电脑端多开方法
- AB实验的高端玩法系列4- 实验渗透低?用户未被触达?CACE/LATE
- 怎么把做好的ps保存成图片_ps存成jpg格式的快捷键,ps如何另存为图片格式
- time库:Python的时间时钟处理
- CS系统设计与开发——人事档案管理系统的设计与实现
- rstudio中读取数据_Rstudio操作数据库
- 我的生信自学心得分享