NPOI导入,导出数据库
来源:互联网 发布:费曼feynman知乎 编辑:程序博客网 时间:2024/05/20 13:41
<pre name="code" class="csharp">using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System.Data;using System.Data.SqlClient;using System.Configuration;namespace 将excel数据插入数据库{ class Program { private static readonly string str = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; static void Main(string[] args) { //导入数据库 using (FileStream stream = new FileStream("C:/Users/dong/Desktop/1234.xls", FileMode.Open, FileAccess.Read)) { HSSFWorkbook work = new HSSFWorkbook(stream); ISheet sheet = work.GetSheetAt(0); //注意当是导入的时候用GetSheetAt(0);,导出的时候.CreateSheet("员工数据"); DataTable table = new DataTable(); //创建以个Datatable对象 table.Columns.Add("Name", typeof(string)); int num = sheet.LastRowNum; for (int i = 1; i <= num; i++) { IRow row = sheet.GetRow(i); //创建行 DataRow daterow = table.NewRow(); for (int j = 1; j < row.LastCellNum; j++) { daterow["Name"] = row.GetCell(j).StringCellValue; table.Rows.Add(daterow); } //Student stu = new Student(); //stu.Name = row.GetCell(1).StringCellValue; //SqlHelper.ExecuteNonQuery("insert into T_Excel(Name) values(@Name)", // new SqlParameter("@Name", stu.Name)); } using (SqlBulkCopy bulk = new SqlBulkCopy(str)) { bulk.DestinationTableName = "T_Excel"; bulk.ColumnMappings.Add("Name", "Name"); bulk.WriteToServer(table); } } //导出数据库 List<Student> list = new List<Student>(); DataTable dt= SqlHelper.ExecuteDataTable("select * from T_Excel"); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { list.Add(RowToModel(dr)); } } using (FileStream stream = new FileStream("C:/Users/dong/Desktop/导出.xls", FileMode.Create, FileAccess.Write)) { HSSFWorkbook work = new HSSFWorkbook(); ISheet sheet = work.CreateSheet("员工数据"); IRow row = sheet.CreateRow(0); row.CreateCell(0, CellType.NUMERIC).SetCellValue("编号"); row.CreateCell(1, CellType.NUMERIC).SetCellValue("姓名"); row.CreateCell(2, CellType.NUMERIC).SetCellValue("入职日期"); for (int i = 0; i <list.Count; i++) { Student stu = list[i]; IRow irow = sheet.CreateRow(i+1); irow.CreateCell(0, CellType.STRING).SetCellValue(stu.Id); irow.CreateCell(1, CellType.STRING).SetCellValue(stu.Name); //下面是日期类型的处理 ICellStyle style = work.CreateCellStyle(); IDataFormat format = work.CreateDataFormat(); style.DataFormat = format.GetFormat("yyyy\"年\"m\"月\"d\"日\""); ICell cellInDate = irow.CreateCell(2,CellType.NUMERIC); cellInDate.CellStyle = style; cellInDate.SetCellValue(stu.Time); } work.Write(stream); } } public static Student RowToModel(DataRow dr) { Student s = new Student(); s.Id=(long)dr["Id"]; s.Name=(string)dr["Name"]; s.Time=(DateTime)dr["Time"]; return s; } }}
当从数据库导出的时候,是已知数据,创建excel表,所以用到CreateSheet,CreateRow等。
当从excel导入数据库的时候,用到GetSheet,GetRow等。
日期类型的数据处理有些特殊,在代码中可以看出
0 0
- NPOI导入,导出数据库
- 使用NPOI导入导出
- NPOI Excel导入导出
- 使用Npoi 导入导出
- NPOI导入导出数据
- NPOI与DataTable导出导入
- Npoi导入导出到Excel
- NPOI的导入、导出实践
- asp.net怎样使用NPOI 导出到excel和从excel导入到数据库
- 使用NPOI导入导出标准Excel
- 使用NPOI导入导出标准Excel
- 使用NPOI导入导出标准Excel
- 使用NPOI操作Excel导入导出数据
- 使用NPOI 导入导出Excel的类
- 使用NPOI导入导出标准Excel
- .NET 使用NPOI导入导出标准Excel
- Asp.net NPOI导入导出Excel表格
- 使用NPOI导入导出标准Excel
- svn使用心得
- 重拾编程之路--Linked List Cycle II
- 2015人工智能重大突破
- Activiti工作流(二)——入门Demo及数据库
- S盒的变换
- NPOI导入,导出数据库
- shell 数字运算
- javascript Object.extend的用法
- 即时 在线客服
- Hadoop-HDFS架构
- lightoj1189
- android的thread、looper、handler机制
- 公钥和私钥的区别
- HTTP/1.1与HTTP/1.0的区别