[转]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;
[转]C# web 读取Excel文件的更多相关文章
- ADO.NET 读取Excel文件,并作数据源
项目中需要用的功能,贴上代码了. 需要注意的地方:配置Web.config的时候要注意版本问题! //若是在Web.config中配置数据源,如下 <add key="ExcelCon ...
- .Net读取Excel文件时丢失数据的问题 (转载)
相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...
- form表单提交,Servlet接收并读取Excel文件
首先是jsp页面: <body scroll=no style="overflow-y:hidden;" onselectstart="return false&q ...
- Java实现POI读取Excel文件,兼容后缀名xls和xlsx
1.引入所需的jar包: maven管理项目的话直接添加以下坐标即可: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -- ...
- PhpSpreadsheet如何读取excel文件
PhpSpreadsheet如何读取excel文件 一.总结 一句话总结:万能的百度,直接搜代码就好,绝对有,毕竟github上面4000+的关注,说明很多人用了这个,使用照着demo倒是异常简单 二 ...
- JAVA 读取excel文件成List<Entity>
package com.fsinfo.common.utils; import com.fsinfo.modules.enterprise.entity.EnterpriseRecordEntity; ...
- C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...
- c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...
- PHPExcel读取Excel文件的实现代码
<?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...
随机推荐
- SpringBoot JPA简单使用
引自B站楠哥:https://www.bilibili.com/video/BV137411B7vB 一.新建Springboot项目 pom.xml文件 <?xml version=&qu ...
- 01. struts2介绍
struts2优点 与Servlet API 耦合性低.无侵入式设计 提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能 支持多种表现层技术,如:JSP.freeMarker.veloc ...
- Cisco IOS
IOS Internetwork Operating System 互联网操作系统(基于UNIX系统) Cisco IOS 软件提供多种网络服务进而支持各种网络应用. Cisco IOS用户界面的基本 ...
- GraphQL 在酒店系统上的实践
https://mp.weixin.qq.com/s/Pmut13GYP-kwR2xm8fH-7Q
- Win+R 快速启动程序
将某个程序的可执行C:\Program Files\Oracle\VirtualBox\VirtualBox.exe 或其快捷键 放入 某个自建的快捷键集合文件夹,可以自定义命名 如 vb 将其添加到 ...
- Share Memory By Communicating 一等公民
Share Memory By Communicating - The Go Programming Language https://golang.google.cn/doc/codewalk/sh ...
- 【题解】 CF767E Change-free
洛谷链接 这个题翻译忘了输入,我看的英语原文...... 首先,这是一道贪心题 我的大致方法:pair+堆优 题目分析: 从第一天开始,到最后一天,每天可以选择找钱或者不找钱. 如果不找钱,则零钱数m ...
- Spring听课笔记(专题二)
第3章 Spring Bean的装配(上) 3-1:配置项及作用域 1.Bean的配置项: -- Id -- Class (这个必须,其他的都可以不配置) -- Scope (作用域) -- Cons ...
- 引入 Gateway 网关,这些坑一定要学会避开!!!
Spring cloud gateway是替代zuul的网关产品,基于Spring 5.Spring boot 2.0以上.Reactor, 提供任意的路由匹配和断言.过滤功能.上一篇文章谈了一下Ga ...
- Cisco的互联网络操作系统IOS和安全设备管理器SDM__路由器软、硬件知识
路由器软.硬件知识 1.路由器的组件: 组件 解释 Bootstrap 存储在ROM中的微代码,bootstrap用于在初始化阶段启动路由器.它将启动路由器然后装入IOS POST(开机自检) 存储在 ...