[转]C# web 读取Excel文件

项目中总是遇到要整理基础数据的问题,少量的数据还好说,如果数据量大的话,这无疑会增加项目开发的用时,拖延交期。

那么我们会让客户自己去整理基础数据,但是问题是,客户整理的数据怎写入系统呢?我们一般会采用excel文件,给定客户格式,让其按照格式整理,这样我们就可以导入数据库了,但是在使用的过程中又会产生一些基础数据,我们不可能会再次去帮助用户导入数据,那么这个时候,我们就需要用到一个功能,那就是把excel文件导入到数据库中,那么现在我们就来实现这个功能。

//=====================================================================
//
苏州塔西亚软件有限公司 
// 创建人: Aple
// 日 期: 2010-09-23
// 描 述:
读取excel数据
// QQ群: asp.net(C#)技术交流 71436018
// 版 本:
1.0.0.0
//=====================================================================

首先在页面上放3个控件,一个FileUpload(ID:FileUpload1),一个button(ID:btnRead),一个gridview(ID:GridView1),首先说明下3个控件的作用,

第一个 FileUpload1:用来让用户选择数据源excel的

第二个 btnRead:选择好数据源以后,读取数据按钮

第三个 GridView1:显示数据控件,把刚刚读取的数据显示出来

下面贴出方法:

#region 读取excel数据
       
/// <summary>
        ///
读取excel数据返回datatable
        ///
</summary>
        /// <param
name="sheetName">要读取数据的sheet的名字</param>
       
///
<returns>返回excel里的数据</returns>
       
public DataTable ReadExcelData(string sheetName,FileUpload
UpLoadFile)
       
{
            string
strFileName =
"";
           
DataSet ds = new
DataSet();
           
DataTable
dt;
            
String fileName =
UpLoadFile.PostedFile.FileName.Substring(UpLoadFile.PostedFile.FileName.LastIndexOf("\\")
+ 1, UpLoadFile.PostedFile.FileName.Length - 1 -
UpLoadFile.PostedFile.FileName.LastIndexOf("\\"));
           
///取到当前时间的年、月、日、分、秒和毫秒的值,并使用字符串格式把他们组合成一个字符串
           
String fileTime = DateTime.Now.Year.ToString() +
DateTime.Now.Month.ToString()
           
+ DateTime.Now.Day.ToString() +
DateTime.Now.Hour.ToString()
           
+ DateTime.Now.Second.ToString() +
DateTime.Now.Minute.ToString()
           
+
DateTime.Now.Millisecond.ToString();
           
///在时间字符串后面添加一个随机数和文件的后缀名
           
String src = fileName.Substring(fileName.LastIndexOf(".") + 1, fileName.Length -
fileName.LastIndexOf(".") -
1).ToLower();
           
fileName = fileTime + GetRandomint() + "." +
src;
           
//上载文件到服务器硬盘
           
UpLoadFile.PostedFile.SaveAs(Server.MapPath(Request.ApplicationPath) +
"UserFile\\" +
fileName);
           
strFileName = Server.MapPath(Request.ApplicationPath) + "UserFile\\" +
fileName;
           
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "+ strFileName +
"; Extended Properties=‘Excel
8.0‘";
           
OleDbDataAdapter oada = new OleDbDataAdapter("select * from ["+sheetName+"$]",
strConn);
           
oada.Fill(ds);
           
dt =
ds.Tables[0];
           
return dt;
       
}
        #endregion

以上方法用到一个随机数的方法

private static string GetRandomint()
      
{
            
Random random = new
Random();
            
return(random.Next(10000).ToString());   
//产生一个小于10000的随机正整数
      
}
好了,有了这2个方法,我们就可以在 button 按钮的事件里调用这个方法了:

调用如下:

DataTable dt= ReadExcelData("查询",
FileUpload1);
          
GridView1.DataSource =
dt;
          
GridView1.DataBind();

当然喽,这只是最基本的读取excel数据,如果想插入数据那就得按照规定的格式整理excel,然后从datatable里读取数据循环插入数据库。

记得引用 using System.Data.OleDb;

时间: 2024-08-30 15:01:03

[转]C# web 读取Excel文件的相关文章

读取Excel文件内容在Web上显示

点击事件代码.cs protected void Button1_Click(object sender, EventArgs e) { string strPath = "d:/test.xls"; string mystring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = '" + strPath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=

Java 读取excel文件 兼容97-2013 V2.0

注释里有struts的上传文件和Springmvc有些不一样.读写都是一样的 修复删除缓存文件占用的问题 package com.telling.cw.util.poi; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.xssf.us

ADO.NET 读取Excel文件,并作数据源

项目中需要用的功能,贴上代码了. 需要注意的地方:配置Web.config的时候要注意版本问题! //若是在Web.config中配置数据源,如下 <add key="ExcelConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source='miroExcel/Info.xls';Extended Properties='Excel 8.0;HDR=yes;IMEX=2'"/>

java无依赖读取Excel文件

说到Java读取Excel文件,用得多的当然是POI或jxls,但今天在看一本书的时候.当中提到使用JdbcOdbcDriver这个驱动类在不依赖第三方库的情况下也能够完毕对Excel文件的读取操作,网上搜了一下原因然后自己写了个样例跑通了,在此记录一下. Java读取数据库大家都非常熟悉,须要一个数据源与对应的驱动.开发人员通过JDBC操作驱动.驱动再去操作数据库.那么Java读取Excel文件也是类似的.在Windows系统中,能够将一个Excel文件注冊为一个ODBC数据源,注冊过程为:

PHPExcel读取excel文件示例

PHPExcel的类库下载地址:  https://github.com/PHPOffice/PHPExcel 转载自: http://www.imhdr.com/1332/comment-page-1/ PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包中带有大量如何生成各种样式excel文件的示例,但没有一个读取Excel文件的完整例子.Xiaoqiang根据网上的资料,整理了一份简单读取Excel文件的例子.传统方法: <?php /** * * @copyright 2

PHP读取Excel文件内容

PHP读取Excel文件内容 项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel. PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader.但是可惜的是不能够支持Excel 2007的格式(.xlsx). PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文

python读取excel文件(xrld模块)

Python读取excel文件 一.python  xlrd模块 安装 mac 下安装python  xlrd模块 http://www.crifan.com/python_read_excel_xls_file_xlrd/comment-page-1/ python setup.py install 在mac 下出现的错误是 http://stackoverflow.com/questions/18199853/error-could-not-create-library-python-2-7

[Windows问题-4] C#读取excel文件

问题:使用C#程序读取excel文件,包括后缀为.xls和.xlsx 相信很多朋友都有在程序中读取excel文件的需求,我在调研的过程中也看了很多文章,基本思路都是正确的,但是有一些代码是没有通过验证的,在实际操作的过程中总会遇到一些问题,经过摸索,最终总结出一套可行的方案,在这里跟大家分享. 读取Excel的方法有多种,我这里选择了一种效率较高的方法,将读取出来的数据存放到一个DataSet之中. 代码如下: using System; using System.Collections.Gen

C# 读取EXCEL文件的三种经典方法

1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDb