利用NPOI读取Execl数据插入数据库

Posted vinkong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用NPOI读取Execl数据插入数据库相关的知识,希望对你有一定的参考价值。

首先你得准备NPOI的dll文件

这里提供百度云链接:

链接:https://pan.baidu.com/s/1EavAso5hztTbuexgb9XsvA
提取码:jyk6

前台代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="导入到数据库.aspx.cs" Inherits="导入到数据库" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
      <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </div>
      
    </form>
</body>
</html>

 

直接上后台代码,一定要先添加dll引用

using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class 导入到数据库 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        IWorkbook workbook =null;
      
        if (FileUpload1.HasFile)
        {
            string filePath = Server.MapPath("~/Files/");//先要创建项目文件夹Files
            string fileName = FileUpload1.PostedFile.FileName;
            FileUpload1.SaveAs(filePath + fileName);//存到项目文件夹下

            string fileExt = Path.GetExtension(fileName);
            using (FileStream fileReader = File.OpenRead(filePath + fileName))
            {
                //创建工作簿对象接收文件流(Excel信息)
                try
                {
                    using (var file = new FileStream(filePath+fileName, FileMode.Open, FileAccess.Read))
                    {
                        if (fileExt == ".xls")
                        {
                            workbook = new HSSFWorkbook(file);
                        }
                        else if (fileExt == ".xlsx")
                        {
                            workbook = new XSSFWorkbook(file);
                        }
                      
                        ISheet sheet = workbook.GetSheetAt(0);
                        int ii = 1;
                        //r = 2,剔除表头2行
                        for (int r = 2; r <= sheet.LastRowNum; r++)
                        {
                            //定义参数数组para

                            //创建一行获取sheet行数据
                            IRow row = sheet.GetRow(r);
                            string a = row.GetCell(0).ToString();//excel中的第一个单元格数据
                            string b = row.GetCell(12).ToString();//excel中的第12个单元格数据
                         //{这里使用的你自己的orm框架进行入库操作}
                            ii++;
                        }
                        fileReader.Close();//关闭流
                        file.Close();//关闭流
                        //删除文件
                        System.IO.File.Delete(filePath + fileName);
                        if (ii == sheet.LastRowNum)
                        {
                            Response.Write("<script>alert(‘已将Excel数据插入到数据库表‘)</script>");
                        }
                        else
                        {
                            Response.Write("<script>alert(‘Excel数据插入到数据库表失败!‘)</script>");
                        }
                    }

                }
                catch (Exception d)
                {

                }
            }
        }
    }


}

 

以上是关于利用NPOI读取Execl数据插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

JAVA读取excel数据(插入oracle数据库)

C#NPOI execl下载

execl模板导入导出

java利用poi来读取execl表格返回对象

WEB版利用NPOI导出数据库数据为Excel文件

读取Execl表 导入数据库