{
//数据导入
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Excle文件|*.xls";
open.Title="导入数据...."; if (open.ShowDialog() != true)
{
return;
}
else
{
string filename = open.FileName;
using (Stream stream = File.OpenRead(filename))
{
HSSFWorkbook booke = new HSSFWorkbook(stream);
ISheet sheet = booke.GetSheetAt();
DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("Age");
table.Columns.Add("Indate");
// DataRow row = new DataRow();
// row["Name"]= for(int i=;i< sheet.LastRowNum;i++)
{
IRow HssRow=sheet.GetRow(i);
DataRow row = table.NewRow();
row["Name"] = HssRow.GetCell().StringCellValue;
if (HssRow.GetCell().CellType == CellType.NUMERIC)
{
row["Age"] = HssRow.GetCell().NumericCellValue;
} else if (HssRow.GetCell().CellType == CellType.STRING)
{
row["Age"] = Convert.ToInt32(HssRow.GetCell().NumericCellValue);
}
else
{
MessageBox.Show("数据类型出错");
return;
}
if (HssRow.GetCell().CellType == CellType.NUMERIC)
{
row["Indate"] =(DateTime) HssRow.GetCell().DateCellValue;}
table.Rows.Add(row);
}
TODB(table);
} }
} public void TODB(DataTable table)
{
using (SqlBulkCopy copy = new SqlBulkCopy("Password=HRMSys;Persist Security Info=True;User ID=HRMSys;Initial Catalog=HRMSys;Data Source=."))
{
copy.DestinationTableName = "T_Tex";
copy.ColumnMappings.Add("Name","Name");
copy.ColumnMappings.Add("Age", "Age");
copy.ColumnMappings.Add("Indate", "Indate");
if (table == null)
{
MessageBox.Show("Table 参数为空", "错误提示" );
return;
}
copy.WriteToServer(table);
MessageBox.Show("数据导入成功","消息提示框");
refashush();
}
}

//数据导出

          SaveFileDialog save = new SaveFileDialog();
save.Filter="Excle文件|*.xls";
save.Title="保存文件...."; if (save.ShowDialog()!=true)
{
return; }
else
{
List<TexMode> mo = this.listView.ItemsSource as List<TexMode>;
TexMode [] mode= mo.ToArray();
if(mode==null)
{
MessageBox.Show("TexMode mode 数据为空");
return;
}
string fileName =save.FileName;
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet= workbook.CreateSheet("员工数据");
IRow HeaderRow = sheet.CreateRow();
HeaderRow.CreateCell(, CellType.STRING).SetCellValue("姓名");
HeaderRow.CreateCell(, CellType.NUMERIC).SetCellValue("年龄");
HeaderRow.CreateCell(, CellType.STRING).SetCellValue("日期");
ICellStyle style = workbook.CreateCellStyle();
IDataFormat frommate = workbook.CreateDataFormat();
style.DataFormat = frommate.GetFormat("yyyy/m/d");
for (int i = ;i< mode.Length; i++)
{ IRow row = sheet.CreateRow(i);
row.CreateCell(,CellType.STRING).SetCellValue(mode[i-].Name);
row.CreateCell(, CellType.NUMERIC).SetCellValue(mode[i-].Age);
ICell indate = row.CreateCell(,CellType.NUMERIC);
indate.CellStyle = style;
indate.SetCellValue(mode[i-].Indate); } using (Stream strea = File.OpenWrite(fileName))
{
workbook.Write(strea);
}
MessageBox.Show("文件保存在:" + fileName,"消息提示框"); }

<菜鸟学习大神勿喷> 测试代码,提供的大概思路,部分代码可精简

NPOI 数据导入导出的更多相关文章

  1. 用NPOI实现导入导出csv、xls、xlsx数据功能

    用NPOI实现导入导出csv.xls.xlsx数据功能   直接上代码 首先定义一个接口   如果需要直接操作文件的话,就自己在封装一次 然后定义csv类的具体实现 这个需要引入命名空间LumenWo ...

  2. ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成

    一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马 ...

  3. 从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上

    阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并 ...

  4. oracle数据导入/导出

    Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份.   大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据 ...

  5. Oracle数据导入导出

    Oracle数据导入导出imp/exp 在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与ora ...

  6. SQL SERVER 和ACCESS的数据导入导出

            //批量导入Access         string filepath = Server.MapPath("student.mdb");         stri ...

  7. 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

    在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...

  8. Hive 实战(1)--hive数据导入/导出基础

    前沿: Hive也采用类SQL的语法, 但其作为数据仓库, 与面向OLTP的传统关系型数据库(Mysql/Oracle)有着天然的差别. 它用于离线的数据计算分析, 而不追求高并发/低延时的应用场景. ...

  9. Winform开发框架之通用数据导入导出操作的事务性操作完善

    1.通用数据导入导出操作模块回顾 在我的Winfrom开发框架里面,有一个通用的导入模块,它在默默处理这把规范的Excel数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...

随机推荐

  1. mybatis 对于基本类型数据传值的问题

    最近在开发的时候,遇到一个小问题: Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter fo ...

  2. asp.net "true"的小坑

    在cs文件中 写了一个 属性 protected bool IsTrue { get{ return true; } } 在页面 .aspx文件中 在js中 var flag="<%= ...

  3. 网站第三方登陆(一) QQ登陆

    QQ 登陆是指,通过qq的用户名和密码,登录网站,不需要注册,网站的用户名和密码.如下图 一旦你授权了,就可以进入网站了,要实现这个效果 1.去qq互联平台(http://connect.qq.com ...

  4. 拾取模型的原理及其在THREE.JS中的代码实现

    1. Three.js中的拾取  1.1. 从模型转到屏幕上的过程说开 由于图形显示的基本单位是三角形,那就先从一个三角形从世界坐标转到屏幕坐标说起,例如三角形abc 乘以模型视图矩阵就进入了视点坐标 ...

  5. Hibernate与MyBatis

    一. Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的O/R ...

  6. 程设大作业xjb写——魔方复原

    鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...

  7. git pull 和本地文件冲突问题解决

    具体方法如下 git pull origin 分支 //出现错误 git stash  缓存起来 git pull origin 分支 git stash pop //还原 git stash cle ...

  8. string to byte[]

    在平常的开发过程中,经常碰到需要将string转化成byte[]字节数组的情形,有两种方法,在这里总结一下. 使用MemoryStream 代码如下. using (MemoryStream sb = ...

  9. reversing-Easy Crack

    Easy Crack 程序启动后输入任意字符会显示一个MessageBox的Incorrect Password. 打开OllyDbg,载入程序后查找到目标字符串Incorrect Password, ...

  10. Ajax实现原理

    Ajax的工作 Ajax直觉认识:我们发送一个请求,但是这个请求比较特殊它是异步的,也就是说客户端是不会感觉到的.在发送这个请求的时候我们绑定了一个事件,这个事件会监控我们发送请求的状态,并且每次状态 ...