asp.net(C#)如何读取Excel的文件的实例详解
.xls格式 Office2003及以下版本
.xlsx格式 Office2007 及以上版本
.csv格式 以逗号分隔的字符串文本(可以将上述两种文件类型另存为此格式)
读取前两种格式和读取后一种格式会用两种不同的方法。
下面看程序:
页面前台:
<div> <%-- 文件上传控件 用于将要读取的文件上传 并通过此控件获取文件的信息--%> <asp:FileUpload ID="fileSelect" runat="server" /> <%-- 点击此按钮执行读取方法--%> <asp:Button ID="btnRead" runat="server" Text="ReadStart" /> </div>
后台代码:
//声明变量(属性) string currFilePath = string.Empty; //待读取文件的全路径 string currFileExtension = string.Empty; //文件的扩展名 //Page_Load事件 注册按钮单击事件 protected void Page_Load(object sender,EventArgs e) { this.btnRead.Click += new EventHandler(btnRead_Click); } //按钮单击事件 //里面的3个方法将在下面给出 protected void btnRead_Click(object sender,EventArgs e) { Upload(); //上传文件方法 if(this.currFileExtension ==".xlsx" || this.currFileExtension ==".xls") { DataTable dt = ReadExcelToTable(currFilePath); //读取Excel文件(.xls和.xlsx格式) } else if(this.currFileExtension == ".csv") { DataTable dt = ReadExcelWidthStream(currFilePath); //读取.csv格式文件 } }
下面列出按钮单击事件中的3个方法
///<summary> ///上传文件到临时目录中 ///</ummary> private void Upload() { HttpPostedFile file = this.fileSelect.PostedFile; string fileName = file.FileName; string tempPath = System.IO.Path.GetTempPath(); //获取系统临时文件路径 fileName = System.IO.Path.GetFileName(fileName); //获取文件名(不带路径) this.currFileExtension = System.IO.Path.GetExtension(fileName); //获取文件的扩展名 this.currFilePath = tempPath + fileName; //获取上传后的文件路径 记录到前面声明的全局变量 file.SaveAs(this.currFilePath); //上传 } ///<summary> ///读取xls\xlsx格式的Excel文件的方法 ///</ummary> ///<param name="path">待读取Excel的全路径</param> ///<returns></returns> private DataTable ReadExcelToTable(string path) { //连接字符串 string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; // Office 07及以上版本 不能出现多余的空格 而且分号注意 //string connstring = Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; //Office 07以下版本 因为本人用Office2010 所以没有用到这个连接字符串 可根据自己的情况选择 或者程序判断要用哪一个连接字符串 using(OleDbConnection conn = new OleDbConnection(connstring)) { conn.Open(); DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"Table"}); //得到所有sheet的名字 string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字 string sql = string.Format("SELECT * FROM [{0}],firstSheetName); //查询字符串 OleDbDataAdapter ada =new OleDbDataAdapter(sql,connstring); DataSet set = new DataSet(); ada.Fill(set); return set.Tables[0]; } } ///<summary> ///读取csv格式的Excel文件的方法 ///</ummary> ///<param name="path">待读取Excel的全路径</param> ///<returns></returns> private DataTable ReadExcelWithStream(string path) { DataTable dt = new DataTable(); bool isDtHasColumn = false; //标记DataTable 是否已经生成了列 StreamReader reader = new StreamReader(path,System.Text.Encoding.Default); //数据流 while(!reader.EndOfStream) { string meaage = reader.ReadLine(); string[] splitResult = message.Split(new char[]{','},StringSplitOption.None); //读取一行 以逗号分隔 存入数组 DataRow row = dt.NewRow(); for(int i = 0;i<splitResult.Length;i++) { if(!isDtHasColumn) //如果还没有生成列 { dt.Columns.Add("column" + i,typeof(string)); } row[i] = splitResult[i]; } dt.Rows.Add(row); //添加行 isDtHasColumn = true; //读取第一行后 就标记已经存在列 再读取以后的行时,就不再生成列 } return dt; }
以上是asp.net(C#)如何读取Excel的文件的实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如果在打开一份需要打印的文件时,在打印预览里我们会发现表格框线不知为什么消失不见了,遇到这样的情况,我们就要及时进行处理,如果你的打印文件里也出现了此类的问题,那么就和小编一起来学习下边的课程吧:excel打印表格框线消失怎么办?1、打开一份需要打印的文件,如下图所示。 2、选中所有需要的内容区域,如下图所示。 3、单击鼠标右键,选择“设置单元格格式”选项,如下图所示。 4、点击窗口上方的“边框”选项,如下图所示。 5、在左侧的线条样式中选择细实线图样,如下图所示。 6、选择“外边框”

在日常办公中经常使用Excel来处理数据,时常遇到需要使用“筛选”功能。当我们在Excel中选择执行“筛选”时,对于同一列而言,最多只能筛选两个条件,那么,你知道excel同时筛选3个以上关键词该怎么操作吗?接下来,就让小编为大家演示一遍。第一种方法是将条件逐步添加到筛选器中。如果要同时筛选出三个符合条件的明细,首先需要逐步筛选出其中一个。开始时,可以先根据条件筛选出姓“王”的员工。然后单击【确定】,接着在筛选结果中勾选【将当前所选内容添加到筛选器】。操作步骤如下所示。 同样,再次分别执行筛选

在我们日常的工作学习中,从他人处拷贝了Excel文件,打开进行内容添加或重新编辑后,再保存的有时候,有时会提示出现兼容性检查的对话框,非常的麻烦,不知道Excel软件,可不可改为正常模式呢?那么下面就由小编为大家带来解决这个问题的详细步骤,让我们一起来学习吧。最后一定记得收藏保存。1、打开一个工作表,在工作表的名称中显示多出来一个兼容模式,如图所示。2、在这个工作表中,进行了内容的修改后保存,结果总是弹出兼容检查器的对话框,很麻烦看见这个页面,如图所示。 3、点击Office按钮,点另存为,然

e我们经常会用excel来制作一些数据表之类的,有时在输入参数数值时需要对某个数字进行上标或下标,比如数学公式就会经常用到,那么excel下标怎么打出来呢?我们一起来看看详细操作步骤:一、上标方法:1、首先Excel中输入a3(3为上标)。2、选中数字“3”,右键选择“设置单元格格式”。3、点击“上标”,然后“确定”即可。4、看,效果就是这样的。二、下标方法:1、与上标设置方法类似,在单元格中输入“ln310”(3为下标),选中数字“3”,右键选择“设置单元格格式”。2、勾选“下标”,点击“确定

在处理数据时,有时我们会遇到数据包含了倍数、温度等等各种符号的时候,你知道excel上标应该如何设置吗?我们在使用excel处理数据时,如果不会设置上标,这可是会让我们的很多数据在录入时就会比较麻烦。今天小编就为大家带来了excel上标的具体设置方法。1.首先,让我们打开桌面上的MicrosoftOfficeExcel文档,选择需要修改为上标的文字,具体如图所示。2.然后,点击右键,在点击后出现的菜单中,选择“设置单元格格式”选项,具体如图所示。3.接下来,在系统自动弹出来的“单元格格式”对话框

大部分用户使用Excel都是用来处理表格数据的,其实Excel还有vba程序编写,这个除了专人士应该没有多少用户用过此功能,在vba编写时常常会用到iif函数,它其实跟if函数的功能差不多,下面小编给大家介绍下iif函数的用法。Excel中SQL语句和VBA代码中都有iif函数。iif函数和excel工作表中的IF函数用法相似,执行真假值判断,根据逻辑计算的真假值,返回不同结果。IF函数用法是(条件,是,否)。VBA中的IF语句和IIF函数,前者IF语句是控制语句可以根据条件执行不同的语句,后者

在软件的学习中,我们习惯用excel,不仅仅是因为需要方便,更因为它可以满足多种实际工作中需要的格式,而且excel运用起来非常的灵活,有种模式是方便阅读的,今天带给大家的就是:excel阅读模式在哪里设置。1、打开电脑,然后再打开Excel应用,找到目标数据。2、要想在Excel中,设置阅读模式,有两种方式。第一种:Excel中,有大量的便捷处理方式,分布在Excel中布局中。在Excel的右下角,有设置阅读模式的快捷方式,找到十字标志的图案,点击即可进入阅读模式,在十字标志的右边有一个小的三

1、打开PPT,翻页至需要插入excel图标的页面。点击插入选项卡。2、点击【对象】。3、跳出以下对话框。4、点击【由文件创建】,点击【浏览】。5、选择需要插入的excel表格。6、点击确定后跳出如下页面。7、勾选【显示为图标】。8、点击确定即可。
