利用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)
                {

                }
            }
        }
    }

}

原文地址:https://www.cnblogs.com/Vinkong/p/12618492.html

时间: 2024-09-30 21:00:45

利用NPOI读取Execl数据插入数据库的相关文章

读取Execl表 导入数据库

不知不觉博客园园林都两年多了,我是今年毕业的应届生,最近公司项目需要改动,很多的数据需要导入,很多的实体类需要些.考虑到这些问题自己写了两个winform版的小工具,一个是读取Execl数据导入数据库,另一个是自动生成实体类,以及增,删,改的方法.今天先分享Execl数据导入数据库.基本上没什么界面就两个按钮而已.一个是选择导入的文件,一个是导入数据库按钮. 首先我写了一个MSSQLAction的类,取数据的类,相当于三层里面的SqlHelper类,里面有两个方法 一个是准备读取数据前的命令配置

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

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

C# 读取Execl和Access数据库

第一次写,请大家指教!!话不多说 直接走代码! 1 /// <summary> 2 /// 打开文件 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void btn_file_Click(object sender, EventArgs e) 7 { 8

使用NPOI读取Excel数据到DataTable

现在XML文件的存储格式大行其道,但是也不是适用于所有情况,很多单位的数据交换还是使用Excel的形式.这就使得我们需要读取Excel内的数据,加载到程序中进行处理.但是怎样有效率的读取,怎样使程序保持健壮,这需要很大的努力. 我们如果要写一个动态链接库会很花费时间和精力,这就使得开源项目是个很有效率的选择. 在各类关于Excel的开源项目中NPOI是中国的程序员发起的,他的一大好处是直接处理Ole文件,用户不必安装Office.现在发展到2.0还可以自动判断Excel文件版本,我们自己判断文件

读取excel数据到数据库里

用的是jxlJar /** * 读取excel数据到数据库里 */ private void readExcelToDB() { new Thread(new Runnable() { @Override public void run() { try { String filePath = "/sdcard/"; String fileName = "307322.xlsx"; File file = new File(filePath, fileName); F

python 读取SQLServer数据插入到MongoDB数据库中

# -*- coding: utf-8 -*-import pyodbcimport osimport csvimport pymongofrom pymongo import ASCENDING, DESCENDINGfrom pymongo import MongoClientimport binascii '''连接mongoDB数据库'''client = MongoClient('10.20.4.79', 27017)#client = MongoClient('10.20.66.10

C/s从文件(TXT)中读取数据插入数据库

流程: 1.当按钮单击时,弹出OpenFileDialog 2.判断后缀名是否合法 3.导入数据库 按钮事件中的代码: 1.判断用户是否选中文件. 2.判断用户选择的文件是否为txt //第一步,当按钮被点击时,弹出选择文件框,OpenFileDialog OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "文件文件|*.txt"; if (ofd.ShowDialog() == DialogResult.OK) { if

ASP.NET MVC使用NPOI读取excel数据

一.下载引用 目前官网不能直接下载到引用的dll,需要自己打包(我没有自己打包,我有现成的DLL,地址:https://files.cnblogs.com/files/dengxixi/NPOIdll.7z),即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(office2007版需要此dll). 二.创建MVC项目,页面代码: <html> <head> <meta name

利用Python读取json数据并求数据平均值

要做的事情:一共十二个月的json数据(即12个json文件),json数据的一个单元如下所示.读取这些数据,并求取各个(100多个)城市年.季度平均值. { "time_point": "2014-01", "area": "***", "aqi": "71", "pm2_5": "47", "pm10": "69&