NPOI 数据导入导出
{
//数据导入
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 数据导入导出的更多相关文章
- 用NPOI实现导入导出csv、xls、xlsx数据功能
用NPOI实现导入导出csv.xls.xlsx数据功能 直接上代码 首先定义一个接口 如果需要直接操作文件的话,就自己在封装一次 然后定义csv类的具体实现 这个需要引入命名空间LumenWo ...
- ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成
一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马 ...
- 从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上
阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并 ...
- oracle数据导入/导出
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据 ...
- Oracle数据导入导出
Oracle数据导入导出imp/exp 在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与ora ...
- SQL SERVER 和ACCESS的数据导入导出
//批量导入Access string filepath = Server.MapPath("student.mdb"); stri ...
- 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...
- Hive 实战(1)--hive数据导入/导出基础
前沿: Hive也采用类SQL的语法, 但其作为数据仓库, 与面向OLTP的传统关系型数据库(Mysql/Oracle)有着天然的差别. 它用于离线的数据计算分析, 而不追求高并发/低延时的应用场景. ...
- Winform开发框架之通用数据导入导出操作的事务性操作完善
1.通用数据导入导出操作模块回顾 在我的Winfrom开发框架里面,有一个通用的导入模块,它在默默处理这把规范的Excel数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...
随机推荐
- 收集C#常用类:自己写的一个DBHelper类
随着学的东西越来越多,一点点的完善吧! using System; using System.Collections.Generic; using System.Linq; using System. ...
- VPN安装后报错:Reason442 & Error56
VPN安装后一直报错,同样的32位安装包别人安装是正常,自己安装就不正常了,考虑到是自己电脑配置的问题. 经过一番努力,解决了问题,下面就本次解决过程做一个小小的总结. (1)确保VPN Servic ...
- volatile关键字及编译器指令乱序总结
本文简单介绍volatile关键字的使用,进而引出编译期间内存乱序的问题,并介绍了有效防止编译器内存乱序所带来的问题的解决方法,文中简单提了下CPU指令乱序的现象,但并没有深入讨论. 以下是我搭建的博 ...
- php 使用curl模拟登录discuz以及模拟发帖
<?php$discuz_url = 'http://127.0.0.1/discuz/';//论坛地址$login_url = $discuz_url .'logging.php?action ...
- mysql 存储 emoji报错( Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F)的解决方案
1.报错原因: mysql utf-8 编码储存的是 2-3个的字节,而emoji则是4个字节. 2.解决办法: 修改mysql的配置文件,windows下的为my.ini(linux下的为my.cn ...
- 关于在终端运行rosrun时找不到对应的包的解决方法
输入命令:rosrun kinect2_bridge kinect2_bridge 错误如下:[rospack] Error: package 'kinect2_bridge' not found 解 ...
- 虚拟机启动linux系统报错,此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
在使用虚拟机启动linux的时候报错,如下: 已将该虚拟机配置为使用 64 位客户机操作系统.但是,无法执行 64 位操作. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态. ...
- Msbuild项目集成右键菜单编译
DS1.背景: 我们为什么要将VS2008命令行编译.sln文件集成到右键菜单呢? 原因一:VS2008很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS2008的时候更是如此. 原因二:有 ...
- [转载]Python 元组、列表、字典、文件
python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...
- java中调用xml的方法:DocumentBuilderFactory
具体的使用方法如下: (1)得到 DOM 解析器的工厂实例 DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance(); (2 ...