如何将excel导入到数据库中并在gridview中显示

在页面上导入个excel文件,将该excel中的数据导入到数据库中,并且在页面的gridview中把数据显示出来.
1.在Asp.net中怎样将Excel文件中的数据导入到GridView中呢?
首先我们将这张表中的数据转换为DataTable类型的数据源,做一个函数来解决这个问题
private DataTable createDataSource(string strPath)
        {
            stringstrCon;
            strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPath  + ";Extended Properties=Excel 8.0";
            OleDbConnectioncon = new OleDbConnection(strCon);
            OleDbDataAdapterda = new OleDbDataAdapter("select * from [Sheet1$]", con);
            DataTabledt = new DataTable();
            da.Fill(dt);
            returndt;
        }
只需要传入Excel文件的路径即可。
      其次我们就是利用这个可以函数了。要想将客户端的Excel文件显示到客户端的GridView控件当中,这次都是客户端的东西,在我们的服务器端代码是无法做到的。所以我们必须把这个Excel文件暂时的保存到服务器,我们读取服务器端的文件才可以实现这样的功能。看下面的实现代码:
protected void Button1_Click(objectsender, EventArgs e)
        {
            //检查文件是否存在
            if(FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(),"message", "<script language=‘javascript‘ defer>alert(‘请您选择Excel文件!‘);</script>");
                return;//当无文件时,返回
            }

            stringfilename = DateTime.Now.ToString("yyyymmddhhMMss") +FileUpload1.FileName;
            //获取Execle文件名  DateTime日期函数
            stringsavePath = Server.MapPath(("~/Doc/")+ filename);//Server.MapPath 获得虚拟服务器相对路径

            //如果已经存在就清空
            ClearFile(Server.MapPath("~/Doc/"));

            FileUpload1.SaveAs(savePath);                        //SaveAs将上传的文件内容保存在服务器上

            DataTabledt = createDataSource(savePath);
            GridView1.DataSource = dt;
            GridView1.DataBind();

        }
在上面的代码中我们用到了一个函数ClearFile,它是用来清理文件夹的,我们将Excel文件暂时的存储到服务器端的一个文件夹中,只能暂时的存储,那么东西只会越来越多,而且这些东西也是一些没用的东西,很可能导致系统性能的下降。我们就是用这个函数来清理文件的,下面来一睹这个函数的精妙:
private void ClearFile(stringFilePath)
        {
            String[]files = System.IO.Directory.GetFiles(FilePath);
            if(files.Length > 5)
            {
                for(int i = 0; i < 5; i++)
                {
                    try
                    {
                        System.IO.File.Delete(files[i]);
                    }
                    catch
                    {
                    }

                }
            }
        }
时间: 2024-12-22 11:10:23

如何将excel导入到数据库中并在gridview中显示的相关文章

C#将数据库导出成Excel,再从Excel导入到数据库中。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.IO; namespace CindyDatabaseProcess { class Program { static void Main(string[] args) { System.Data.DataTable dt1 = null; S

将Excel [导入到数据库] or 将数据 [导入到Excel]

将Excel导入到数据库实现如下: 前台代码: @model IEnumerable<Model.Student> @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script

excel导入到数据库的异常处理

excel导入到数据库,这个是经常发生的,今天就碰到了一个非常郁闷的事情,在导入到oracle数据的时候,总是出现ORA-01756: 引号内的字符串没有正确结束,认真的排插了数据当中可能出现的错误,明明感觉是某个不可见字符或者是某个很细小的字符造成的,后来终于找到诀窍了,要把字符中的空格,逗号(全角半角),引号(全角半角),斜杠换行符等都清楚干净再去导入.

将Excel导入SAP数据库表

如何将Excel导入Sap系统,在sap可执行程序中可以通过调用函数ALSM_EXCEL_TO_INTERNAL_TABLE实现. 实现简单效果如下: 选择文件: 点击选择后,文件地址会写入地址栏: 最后点击执行: 具体代码部分如下: *&---------------------------------------------------------------------* *& Report **** *& *&----------------------------

Excel导入Oracle数据库

1.录入excel测试表格,test.xls.2.另存为.csv格式3.创建sql*loader控制文件test.ctl,内容如下:Load dataInfile 'c:\test.csv'insert Into table test Fields terminated by ','(column1,column2,column3,column4,column5) 需要将数据文件拷贝到对应位置 4.到数据库中建立对应的测试表test create table test (column1 Varc

NPOI把Excel导入到数据库

二,把Excel中的数据导入到数据库的具体步骤: protected void Button1_Click(object sender, EventArgs e)        {            try            {                //文件流                using (Stream stream = new FileStream(@"G:\userInfo.xls", FileMode.Open, FileAccess.Read))

excel导入sqlserver数据库大数据量,可每秒控制数量

数据库代码 USE [Test] GO /****** Object:  Table [dbo].[Table_1]    Script Date: 11/07/2017 17:27:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Table_1]( [id] [varchar](100) NULL, [NodeId] [varchar](

点击GridView中TextBox弹出输入对话层,输入内容反传回先前点击的TextBox中(Jquery获取GridView中TextBox的ID)

项目中,由于用户反映说:GridView表中的输入框太小,不方便输入,特别是在输入内容多的时候.问能不能点击GridView中输入框的时候能弹出一个大的内容输入对话框. 介于用户的要求,我就开始修改. 先想到的就是我用Jquery在GridView中TextBox上添加一个focus焦点捕捉事件,当点击时触犯弹出内容输入框. 然后就是当输入完毕的操作了,我又使用内容输入框(其实也是一个TextBox)的焦点失去事件(blur),在该事件中先把值反馈回先前点击的GridView中的那个TextBo

thinkphp将excel导入到数据库中

首先下载phpexcel插件 http://pan.baidu.com/s/1hq56dFm 我用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的vendor文件夹中新建一个名为PHPExcel的文件夹,把classes里面的内容放到里面 下面是前端页面 提示:我在测试的时候遇到报错exception 'PHPExcel_Reader_Exception' with message 'The filename 原因是由于excel的文件后缀可能不同,我的文件后缀是xl