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数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...
随机推荐
- [转]IE8兼容Object.keys
转自:http://blog.sina.com.cn/s/blog_6d63cf160102vbsg.html 只需要加入 var DONT_ENUM = "propertyIsEnumer ...
- iPhone5停留在语音的界面,提示按三次home键,无法继续下去
不知道之前用户是怎么操作的,可能是刷机或恢复出厂设置.穷人,没用玩过iPhone. 根据提示关键词,网上搜索,发现只需要按三次home,三次锁屏,三次锁屏,最后再三次home就可以了. 试了两次,还真 ...
- 如何实现自定义的android WebView错误页
一般来说,可能第一时间想到的是自定义一个html来替代webview内置的异常页面. 但是实际操作时,这种方法比较困难. 这里介绍一个简单的替代方案,希望能有所帮助. 可以采用嵌套layout的方式 ...
- Microsoft.Office.Interop第三方程序 ppt 转换为PDF出错
错误信息:Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B ...
- Linux x64 下 Matlab R2013a 300 kb 脚本文件调试的 CPU 占用过高问题的解决办法
(1) 系统+软件版本 CentOS 6.5 (Final), 64 位,内核initramfs-2.6.32-431.5.1.el6.x86_64, MATLAB Version: 8.1.0.60 ...
- 执行最慢的SQL语句
---执行最慢的SQL语句SELECT top 20(total_elapsed_time / execution_count)/1000 N'平均时间ms',total_elapsed_time/1 ...
- [css]当父元素的margin-top碰上子元素的margin-top
出现条件:父元素和子元素都设置了margin-top 现象:子元素的margin-top可能会失效,导致父元素和子元素粘连在一起 解决方法: 1.给父元素加padding-top:1px. 2.给父元 ...
- My Game --文件读取数据
My Game --线段数据 中说到背景的绘制由贝赛尔曲线生成线段,用 DrawNode 画多边形,同时一张背景有两座山,一座山有两条以上贝赛尔曲线保存,用了嵌套的数据类:Bezier,LineLay ...
- 关于Xcode6创建的工程在Xcode5打开
Xcode6创建的工程在Xcode5打开- 4.0只显示3.5大小的问题 只需要在工程里添加Default-568h@2x.png,即可以解决
- 抛弃msvcrtXX库
对于极致要求体积的程序来说.抛弃Msvcrt里的函数是必要的.(尤其是msvcrtXX库)因为要使用mscvrt中的函数,就需要带上相对来 说,不能容忍的几kb的,vcrt初始化函数,包围在我们的Wi ...