NPOI关于excel与数据库表转换

NPOI是把excel文件作为二进制流来操作,同时也把二进制流文件写入成excel文件格式

1.写excel
	    HSSFWorkbook workBook = new HSSFWorkbook();
            ISheet sheet = workBook.CreateSheet("员工表");
            IRow rowHeader = sheet.CreateRow(0);//表头
            rowHeader.CreateCell(0, CellType.STRING).SetCellValue("工号");
            rowHeader.CreateCell(1, CellType.STRING).SetCellValue("姓名");
            rowHeader.CreateCell(2, CellType.STRING).SetCellValue("性别");
            rowHeader.CreateCell(3, CellType.STRING).SetCellValue("生日");
	    using (Stream stream = File.OpenWrite(fileName))
                {
                    workBook.Write(stream);
                }
2.读excel
	 FileStream file = new FileStream(Server.MapPath(@"TemFiles\tem.xls"), FileMode.Open, 	 FileAccess.Read); 

	 //根据路径通过已存在的excel来创建HSSFWorkbook,即整个excel文档
         HSSFWorkbook workbook = new HSSFWorkbook(file);

         //获取excel的第一个sheet
         HSSFSheet sheet = workbook.GetSheetAt(0);

         DataTable table = new DataTable();
         //获取sheet的首行
         HSSFRow headerRow = sheet.GetRow(0);

         //一行最后一个方格的编号 即总的列数
         int cellCount = headerRow.LastCellNum;

         for (int i = headerRow.FirstCellNum; i < cellCount; i++)
         {
             DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
             table.Columns.Add(column);
          }
         //最后一列的标号  即总的行数
         int rowCount = sheet.LastRowNum;

         for (int i = (sheet.FirstRowNum + 1); i < sheet.LastRowNum; i++)
         {
             HSSFRow row = sheet.GetRow(i);
       if (row== null)//这一句很关键,因为没有数据的行默认是null
       {
        continue;
        }

             DataRow dataRow = table.NewRow();

             for (int j = row.FirstCellNum; j < cellCount; j++)
             {
                 if (row.GetCell(j) != null)//同理,没有数据的单元格都默认是null
                dataRow[j] = row.GetCell(j).ToString();
              }

             table.Rows.Add(dataRow);
         }

         workbook = null;
         sheet = null;
时间: 2024-10-09 20:35:13

NPOI关于excel与数据库表转换的相关文章

Excel读取数据库表

下面的代码用于一般情况下用Excel宏读取数据库的表字段 Public Sub getdata() Dim cnn As New ADODB.Connection, sh As Worksheet Dim rs As New ADODB.Recordset Dim cnnStr As String, SQL As String cnnStr = "Provider=SQLOLEDB;Initial Catalog=BI" & ";User ID=sa" &a

导入EXCEL到数据库表中的步骤:

1.将EXCEL文档上传到服务器上: 2.读取服务器上的EXCEL中的数据到数据库中. 心得:NPOI.dll组件,需要知道导入的EXCEL文件的完整路径,所以我试图通过<input type="file">控件在服务器端得到EXCEL文件在客户端的完整路径,会不会成立呢?经过尝试得知:不能得到完整路径的!!原因:各浏览器为了安全起见已经无法获取到本机上的真实路径 ,服务器端是不能访问客户端的文件的

数据库表转换成JavaBean

本人花了几个小时用C#开发了一款,数据表生成javabean的软件.目前只支持Mysql,内置类型映射器.开源,没有测试. 支持数据库注释,忘了获取表注释,见谅.使用之前配置一下config.xml文件 https://pan.baidu.com/s/16uaRyrq0pNupMM6cdndpsw 原文地址:https://www.cnblogs.com/chaeyeon/p/8541830.html

ThinkPHP3.2.3 PHPExcel读取excel插入数据库

版本 ThinkPHP3.2.3 下载PHPExcel 将这两个文件放到并更改名字 excel文件: 数据库表: CREATE TABLE `sh_name` ( `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8; 代码: 代码主要在index方法中,有数据提交则写入数据库,否则展示表单 1 <?php 2 namespace Home\Controll

C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享

using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls"))        {            //创建工作簿对象接收文件流(Excel信息)            IWorkbook workbook = new HSSFWorkbook(fileReader);            //工作簿共有几个表            //int count = wor

NPOI操作excel——利用反射机制,NPOI读取excel数据准确映射到数据库字段

> 其实需求很明确,就是一大堆不一样的excel,每张excel对应数据库的一张表,我们需要提供用户上传excel,我们解析数据入库的功能实现. 那么,这就涉及到一个问题:我们可以读出excel的表头,但是怎么知道每个表头具体对应数据库里面的字段呢? 博主经过一段时间的思考与构思,想到一法:现在的情况是我们有excel表A,对应数据库表B,但是A与B具体属性字段的映射关系我们不知.那我们是不是可以有一个A到B的映射文件C呢? 我想,说到这,大家就很明了了... 第一步:为每张excel创建一个与

.Net core 使用NPOI 直接导入Excel到数据库(即不先将Excel保存到服务器再读取文件到数据库)

原文:.Net core 使用NPOI 直接导入Excel到数据库(即不先将Excel保存到服务器再读取文件到数据库) 1 /// <summary> 2 /// 导入信息 3 /// </summary> 4 /// <param name="file"></param> 5 /// <returns></returns> 6 /// /Public/PublicPool/ImportCustomer 7 pub

将Excel数据表到数据库表

假设你有大量的数据要导入到数据库表,恐怕是没有效率的写程序,作为用于数据操纵,Excel在这方面有优势,但是,如何将其结合起来?将Excel数据表到数据库表,就是本篇博客的目的. 首先去下载MySQL皮肤(对MySQL数据进行图形化界面操作的便捷工具),点击打开皮肤下载链接. 然后连接数据库,进行操作 继续将发现世界结束后,非常好.. 版权声明:本文博客原创文章.博客,未经同意,不得转载.

Mysql MyISAM数据库批量转换表引擎为Innodb

Mysql MyISAM数据库批量转换表引擎为Innodb 最近在做事物处理需要把表结构都改为带有支持事物的Innodb引擎格式, 把里面数据库 用户名.密码 等信息修改为你自己的,放在网站下运行即可.如果想把Innodb改为MyISAM修改里面的  engine='InnoDB'  部分代码. <?php /** * User: Yt * Date: 2016/2/25 0025 */ //连接数据库 $host='localhost'; $user='root'; //数据库用户名 $pas