前言

本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

实现如下:

前台代码:使用服务端控件实现上传

服务端代码:

protected void UploadBtn_Click(object sender, EventArgs e)

{

if (ExcelFileUpload.HasFile == false)//HasFile用来检查FileUpload是否有文件

{

Response.Write("alert('请您选择Excel文件') ");

return;//当无文件时,返回

}

string IsXls = Path.GetExtension(ExcelFileUpload.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名

if (IsXls != ".xlsx" && IsXls != ".xls")

{

Response.Write(ExcelFileUpload.FileName);

Response.Write("alert('只可以选择Excel文件')");

return;//当选择的不是Excel文件时,返回

}

string filename = ExcelFileUpload.FileName;//获取Execle文件名

string savePath = Server.MapPath(("UploadExcel\\") + filename);//Server.MapPath 服务器上的指定虚拟路径相对应的物理文件路径

//savePath ="D:\vsproject\Projects\exceltestweb\exceltestweb\uploadfiles\test.xls"

//Response.Write(savePath);

DataTable ds = new DataTable();

ExcelFileUpload.SaveAs(savePath);//将文件保存到指定路径

DataTable dt = GetExcelDatatable(savePath);//读取excel数据

List regList = ConvertDtToInfo(dt);//将datatable转为list

File.Delete(savePath);//删除文件

Response.Write("alert('上传文件读取数据成功!');");

}

///

/// 从excel文件中读取数据

///

/// 实体文件的存储路径

///

private static DataTable GetExcelDatatable(string fileUrl)

{

//支持.xls和.xlsx,即包括office2010等版本的;HDR=Yes代表第一行是标题,不是数据;

string cmdText = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileUrl + "; Extended Properties=\"Excel 12.0;HDR=Yes\"";

System.Data.DataTable dt = null;

//建立连接

OleDbConnection conn = new OleDbConnection(cmdText);

try

{

//打开连接

if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)

{

conn.Open();

}

System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

string strSql = "select * from [Sheet1$]"; //这里指定表明为Sheet1,如果修改过表单的名称,请使用修改后的名称

OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

dt = ds.Tables[0]; ;

return dt;

}

catch (Exception exc)

{

throw exc;

}

finally

{

conn.Close();

conn.Dispose();

}

}

///

/// 将datatable转换为list集合

///

/// DataTable

///

private static List ConvertDtToInfo(DataTable dt)

{

List list = new List();

if (dt.Rows.Count > 0)

{

foreach (DataRow item in dt.Rows)

{

RegNumInfo info = new RegNumInfo();

info.RegNum = item[0].ToString();

info.Name = item[1].ToString();

info.Period = item[2].ToString();

info.Remark = item[3].ToString();

list.Add(info);

}

}

return list;

}

public class RegNumInfo

{

public string RegNum { get; set; }

public string Name { get; set; }

public string Period { get; set; }

public string Remark { get; set; }

}

注意:出现“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序” 的报错的解决方案

1、因为读取excel文件使用的是OleDb,如果服务器没有安装office,需要安装数据访问组件(AccessDatabaseEngine);

*适用于office2010的

Microsoft Access Database Engine 2010 Redistributable

https://www.microsoft.com/zh-CN/download/details.aspx?id=13255

2、在IIS应用程序池中,设置“”启用兼容32位应用程序”;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法相关推荐

  1. python获取网页数据后写入mysql_HTTP协议与使用Python获取数据并写入MySQL

    一.Http协议 二.Https协议 三.使用Python获取数据 (1)urlib (2)GET请求 (3)POST请求 四.爬取豆瓣电影实战 1.思路 (1)在浏览器中输入https://movi ...

  2. java 上传文件并读取_Java实现图片上传到服务器并把上传的图片读取出来

    在很多的网站都可以实现上传头像,可以选择自己喜欢的图片做头像,从本地上传,下次登录时可以直接显示出已经上传的头像,那么这个是如何实现的呢? 下面说一下我的实现过程(只是个人实现思路,实际网站怎么实现的 ...

  3. linux服务器查看excel文件,从Linux服务器读取存储在SharePoint上的Excel文件(运行R Studio)...

    我正在尝试读取存储在企业Intranet SharePoint站点上的Excel文件,并且使用来自使用Shiny Server在Linux服务器上运行的R Studio中的"gdata&qu ...

  4. ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程。

    本文通过一个简单的例子,实现读取Excel数据文件. 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一个按钮控件. <INPUT id="F ...

  5. h5如何上传文件二进制流_前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输...

    HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系 ...

  6. 文件上传 服务器不响应headr,php 文件上传中服务器接收到$_FILES[xxx]['type'] 中的 type 原来是从 http header 里读取的,所以非常不可信...

    $type = $_FILES[$filename]['type']; if ($type != "image/jpeg" && $type != "im ...

  7. EasyExcel实现文件读取、导出、上传、下载操作

    一.EasyExcel简介 ​     Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度 ...

  8. 大数据WE阶段(十七)文件上传

    文件上传 一.概述 在web开发中经常需要从客户端向服务端上传文件 , 如: 照片 . 文件 , 这些通常都需要web开发中的文件上传技术实现. 二. 文件上传开发步骤 提供一个带有文件上传项的表单 ...

  9. php上传文件大小读取,怎么修改php上传文件的大小限制?

    修改php上传文件大小限制的方法:首先打开php.ini配置文件:然后分别查找并修改"post_max_size"项."upload_max_filesize" ...

最新文章

  1. 超强NLP思维导图,知识点全面覆盖:从基础概念到最佳模型,萌新成长必备资源...
  2. mysql job 运行时间设置_mysql 的job 设置
  3. 请谈一下,你知道的http请求,并说明应答码502和504的区别
  4. 我苦心搭建的技术架构,终于把公司干没了……
  5. Invalid nested tag br found, expected closing tag li 错误解决
  6. github常用命令汇总
  7. PJSIP视频用户开发
  8. Sqlserver 特殊字符替换
  9. 将超星阅读器的PDG格式文件转化成PDF格式
  10. 1、曾经风光无限的jsp,为什么现在很少有人使用了?
  11. ie浏览器当前的安全设置使计算机面临风险,IE安全设置
  12. 计算机学报应用研究,组推荐系统及其应用研究-计算机学报.PDF
  13. 一元二次方程abc决定什么_专题—二次函数一元二次方程-abc意义.pptx
  14. mysql increment参数_mysql auto_increment
  15. 高等数学:第五章 定积分(3) 微积分基本公式
  16. 2017年6月大学英语六级真题(第一套)阅读理解(一)(每日一摸)
  17. 【基金学习】小白基金学习记录(一)
  18. trunk+vtp+链路冗余 理解
  19. 卷积神经网络参数量和计算量内存计算
  20. SimpleDateFormat.parse()方法中的时区设置缺陷

热门文章

  1. 计算净现值和内部报酬率的方法
  2. 联发科发布MT7986方案支持Wi-Fi 6/6E
  3. R语言——read.table;read.csv(读取外部数据)
  4. 一款RS485电表的调试与上位机通讯过程
  5. 【Transformer论文解读】TRAR: Routing the Attention Spans in Transformer for Visual Question Answering
  6. IBM:电脑帝国的企业文化
  7. js(javascript)页面刷新
  8. 42、我的C#学习笔记8
  9. Infragistics Ignite UI for Web
  10. matlab code svm,SVM matlab 代码详解说明