NPOI读取Excel,导入数据到Excel练习01
NPOI 2.2.0.0,初级读取导入Excel
1.读取Excel,将数据绑定到dgv上
private void button1_Click(object sender, EventArgs e)
{
List<Book> books = new List<Book>();
//1.读取Excel文件
using (FileStream fsReder = File.OpenRead("练习.xlsx"))
{
//2.创建工作簿
IWorkbook wk = new XSSFWorkbook("练习.xlsx");
//IWorkbook wk=new XSSFWorkbook(fsReder);
//获取第一个工作表
ISheet sheet = wk.GetSheetAt();
//3.遍历每一行,行和列的索引都是从0开始
for (int i = ; i < sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
//MessageBox.Show(row.GetCell(0).ToString());
//4.读取每一行的数据,加到对象中
books.Add(new Book()
{
Name = row.GetCell().ToString(),
One = row.GetCell().ToString(),
Two = row.GetCell().ToString(),
Three = row.GetCell().ToString(),
Four = row.GetCell().ToString(),
Five = row.GetCell().ToString(),
Six = row.GetCell().ToString(), });
}
}
//5.绑定数据
dgv.DataSource = books;
dgv.AutoGenerateColumns = false;
dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
MessageBox.Show("操作完成");
}
2.将数据导入到Excel中
private void button2_Click(object sender, EventArgs e)
{
List<Book> books = new List<Book>()
{
new Book() {Name = "火影忍者",One ="",Two = "",Three = "",Four = "",Five = "",Six = ""},
new Book() {Name = "海贼王", One ="",Two = "",Three = "",Four = "",Five = "",Six = ""},
new Book() {Name = "死神",One ="",Two = "",Three = "",Four = "",Five = "",Six = ""},
new Book() {Name = "游戏王",One ="",Two = "",Three = "",Four = "",Five = "",Six = ""},
};
//1.创建工作簿
using (FileStream fsWrite = File.OpenWrite("1.xlsx"))
{
IWorkbook wk = new XSSFWorkbook();
//2.创建第一个工作表
ISheet sheet = wk.CreateSheet("第一张表");
//第一行设置标题
IRow rowHead = sheet.CreateRow(); rowHead.CreateCell().SetCellValue("图书名");
rowHead.CreateCell().SetCellValue("一月");
rowHead.CreateCell().SetCellValue("二月");
rowHead.CreateCell().SetCellValue("三月");
rowHead.CreateCell().SetCellValue("四月");
rowHead.CreateCell().SetCellValue("五月");
rowHead.CreateCell().SetCellValue("六月"); //3.在工作表的最后一行下,循环创建工作表的每一行,添加数据
for (int i = ; i < books.Count; i++)
{
IRow row = sheet.CreateRow(i);
row.CreateCell().SetCellValue(books[i].Name);
row.CreateCell().SetCellValue(books[i].One);
row.CreateCell().SetCellValue(books[i].Two);
row.CreateCell().SetCellValue(books[i].Three);
row.CreateCell().SetCellValue(books[i].Four);
row.CreateCell().SetCellValue(books[i].Five);
row.CreateCell().SetCellValue(books[i].Six);
}
wk.Write(fsWrite);
} MessageBox.Show("操作完成");
}
NPOI读取Excel,导入数据到Excel练习01的更多相关文章
- Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”
从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表 ...
- vue Excel导入,下载Excel模板,导出Excel
vue Excel导入,下载Excel模板,导出Excel vue Excel导入,下载Excel模板 <template> <div style="display: ...
- Open XML操作Excel导入数据
项目中发现使用OleDb(using System.Data.OleDb)相关对象处理Excel导入功能,不是很稳定经常出问题,需要把这个问题解决掉.项目组提出使用OpenXML来处理Excel的导入 ...
- 【Kettle】Java借助Kettle将Excel导入数据
示例功能(仅供测试): 在JAVA项目中,将数据从Excel文件导入数据库中.实现该能有多种方法,而本例则是“不走寻常路”,尝试借助Kettle实现数据导入. 原理: Java中调用存储在Kettle ...
- 关于Vue+iview的前端简单的导入数据(excel)
前一段时间项目经历了纯前端处理导入excel文件并处理等问题,数据量大的时候时间上长的一比,三千条数据需要三四秒甚至更长,不管产品咋想的,具体做法为: 首先下载一个这玩意: 进行简单封装一下: < ...
- C#实现Excel模板导出和从Excel导入数据
午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.封装的Exc ...
- 项目经验之:再来一章:excel导入数据 封装成最棒的不容易!!!
我见过很的系统,包括OA,ERP,CRM等,在常用的功能当中,从外部导入数据是最常用到的.因为很多客户需要以excel的形式提供数据,,这样的方式我们又如何做呢, 大家最常见的做法可能是这样的,在需要 ...
- 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件
今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...
- Dynamics CRM EXCEL导入数据字段类型为选项集时的注意事项
在开始先展示下CRM的导入数据涉及选项集字段时的一个问题 下图是选项集字段的属性 下图是我要导入的excel中的列值,可以看出列明和字段名是一致的,而列值却不是选项集中已有的选项 在导入校验时,只要字 ...
- C# Excel导入数据
表 表的创建脚本 CREATE TABLE [dbo].[TB_PROJECTS_New1]( , ) NOT NULL, ) NULL, ) NULL, , ) NULL, , ) NULL, , ...
随机推荐
- Extjs combox的详解
Extjs combox的详解 写了哈extjs当中的combox,第一次写,照着网上的例子抄.在上次的例子中,是实现了,可是有一个重大的错误.也就是自己根本没有理解combox从远程服务器获取数据, ...
- C#中Delegate
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- python初试牛刀
需求:在L7的一台机器上做nginx配置,然后代码分发到别的所有的机器上.由于目录中有很多配置文件,而且防止误操作,需要修改配置之前先备份原配置.然后需要在运行修改配置的脚本之前,先弹出界面,告知操作 ...
- Jquery LigerUI框架学习(二)之Tree于Tab标签实现iframe功能
LigerUI框架Tree于Tab标签动态使用,当点击Tree后动态创建Tab标签,和通常用的iframe框架功能类似 Tree中的关键代码 //Tree初始化 $("#tree1" ...
- hadoop启动后jps 没有namenode
hadoop集群启动后,jps 发现没有namenode. 网上查了下,这问题可能是由于两次或两次以上格式化NameNode造成的. 因为我的是刚刚新搭建的集群,里面没什么资料,所以我直接删除各个 ...
- 常用的机器学习&数据挖掘知识点【转】
转自: [基础]常用的机器学习&数据挖掘知识点 Basis(基础): MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方),LSM(Le ...
- iOS8中的UIAlertController
转: iOS8推出了几个新的“controller”,主要是把类似之前的UIAlertView变成了UIAlertController,这不经意的改变,貌似把我之前理解的“controlle ...
- Eclipse启动的时候窗口一闪就关的解决办法(转)
有时候会碰到如题这种问题,从网上查知解决办法,非常管用 为eclipse.exe创建一个快捷方式,然后快捷方式上右键-属性,在目标栏填入 E:\eclipse\eclipse.exe -vm &quo ...
- 无法将 flash.display::Sprite@156b7b1 转换为 mx.core.IUIComponent
无法将 flash.display::Sprite@156b7b1 转换为 mx.core.IUIComponent 在Flex Application里,是不能直接用addChild添加Sprite ...
- MyEclipse默认标签TODO,XXX,FIXME和自定义标签的使用
MyEclipse默认标签TODO,XXX,FIXME和自定义标签的使用 MyEclipse中的一些特殊的注释技术包括:1. // TODO —— 表示尚未完成的待办事项.2. // XX ...