ASP.NET C# 选择Excel文件并读取到Gridview中,但是出错!

问题描述

ASP.NETC#选择Excel文件并读取到Gridview中,但是出错!代码如下:protectedvoidButton1_Click(objectsender,EventArgse){if(FileUpload1.HasFile==false){Response.Write("<script>alert('请您选择Excel文件')</script>");return;}stringIsXls=System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();if(IsXls!=".xls"&&IsXls!=".xlsx"){Response.Write("<script>alert('只可以选择Excel文件')</script>");return;}stringfilename=FileUpload1.FileName;stringsavePath=Server.MapPath(filename);//Server.MapPath获得虚拟服务器相对路径//FileUpload1.SaveAs(savePath);//SaveAs将上传的文件内容保存在服务器上DataSetds=ExcelSqlConnection(savePath,filename);//调用自定义方法this.GridView1.DataSource=ds;this.GridView1.DataBind();'-IListSource不包含任何数据源。}publicstaticSystem.Data.DataSetExcelSqlConnection(stringfilepath,stringtableName){DataSetds=newDataSet();try{stringstrCon=string.Format("Provider=Microsoft.Jet.OLEDB.4.0;DataSource={0};ExtendedProperties=Excel8.0",tableName);OleDbConnectionmyConn=newOleDbConnection(strCon);stringstrCom="SELECT*FROM[Sheet1$]";myConn.Open();//打开数据链接,得到一个数据集OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn);myCommand.Fill(ds,"[Sheet1$]");myConn.Close();}catch(Exceptionee){}returnds;}运行时却光标停留在:this.GridView1.DataBind();提示:IListSource不包含任何数据源。

解决方案

解决方案二:
publicvoidReadExcel(stringsExcelFile,GridViewdgBom){DataTableExcelTable;DataSetds=newDataSet();//Excel的连接OleDbConnectionobjConn=newOleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+sExcelFile+";"+"ExtendedProperties=Excel8.0;");objConn.Open();DataTableschemaTable=objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);stringtablename=schemaTable.Rows[0][2].ToString().Trim();//获取Excel的表名,默认为sheet1.stringstrsql="select*from["+tablename+"]";OleDbCommandobjCmd=newOleDbCommand(strsql,objConn);OleDbDataAdaptermyData=newOleDbDataAdapter(strsql,objConn);myData.Fill(ds,tablename);dgBom.DataSource=ds;dgBom.DataBind();objConn.Close();ExcelTable=ds.Tables[tablename];}OK了
解决方案三:
LZ在自导自演呀
解决方案四:
你这样直接绑定DataSetds,则ASP.NET会默认转换为这样的绑定this.GridView1.DataSource=ds.Tables[0];//这是微软的语法糖,你别被迷惑了,建议楼主多看点书,特别理解各控件的工作机制。假如,你返回的ds==null,则ds.Tables[0]会报错,因为一个null对象,是不能使用.(点号操作符)的当然,这也只是我个人分析,具体楼主自己检查
解决方案五:
给楼主一个Excel导入导出的实例,,将导入的数据datatable与datagridview绑定即可
解决方案六:
是不是office驱动问题?还有就是你得先把文件上传到服务器,然后获取绝对路径,调用office驱动读取数据填充到DataTable中,然后绑定Gridview上去

时间: 2024-08-22 14:25:43

ASP.NET C# 选择Excel文件并读取到Gridview中,但是出错!的相关文章

导入-Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死!

问题描述 Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死! 项目是进行单机版和网络版的数据对比,需要将单机版导出来的数据(excel表格,固定格式)导入网络版进行对比,网络版在导入数据时能提示选择导入的excel文件,不用在Java代码中将要读取数据的excel表格的目录写死.谢谢您的帮助! 解决方案 JAVA读取EXCEL用的比较多的是POI类库,参考Java对Excel(0307)进行上传.解析.验证.入库,或者你搜索一下java poi,有很多文章的

excel数据-Winform选择excel文件在datagridview显示

问题描述 Winform选择excel文件在datagridview显示 Winform选择excel文件在datagridview显示,如果excel没打开就会报错 解决方案 C# 读取Excel中的数据 解决方案二: C# 获取Excel工作薄中Sheet页(工作表)名集合

flex+java选择本地文件然后读取文件内容并导入到数据库中,怎么实现啊,求高手指点,,

问题描述 flex+java选择本地文件然后读取文件内容并导入到数据库中,怎么实现啊,求高手指点,,需要实现的功能是:选择本地文件txt或xls的,然后把文件内容导入数据库中,, 解决方案 解决方案二:问错版块了解决方案三:引用1楼p2227的回复: 问错版块了 !!!!!!那应该算哪个版块的,java+flex解决方案四:flex有个块的http://forum.csdn.net/SList/Flex/java一个大版块了,你展开再自己决定啰

phpExcel导入excel文件数据到mysql数据库中老是出现页面访问错误是怎么回事

问题描述 phpExcel导入excel文件数据到mysql数据库中老是出现页面访问错误是怎么回事 在$sheet=$phpExcel->getSheet(0);如果不打印这个$sheet信息就会出现页面访问的错误信息 解决方案 要有一个sheet变量来获得getSheet(0)的sheet 解决方案二: $phpExcel->getSheet(0)那是取出第一张Sheet.如果不写,到底读写哪张Sheet? 解决方案三: http://www.jb51.net/article/59844.h

关于c++将文件内容读取到链表中

问题描述 关于c++将文件内容读取到链表中 解决方案 #include<string> #include<iostream> #include<fstream> #include <stdlib.h> using namespace std; class Person { protected: string name; int age; string sex; }; class Doctor:public Person { public: void show

编程-ArcEngine通过文件路径读取Arcsde数据库中的文件

问题描述 ArcEngine通过文件路径读取Arcsde数据库中的文件 各位大神,本人编程小白一个(貌似废话),最近在老师让我写一个用C#调用GP工具的功能,这个GP工具的参数是要从另外的一台服务器上读取,老师提示我用连接ArcSDE数据库的方式读取,而且最后要在一个Combox中显示文件路径,界面类似于这样的结构,请大神们指点!!! 解决方案 http://blog.sina.com.cn/s/blog_84f7fbbb0101972x.html

asp.net c#生成excel文件方法

asp教程.net c#生成excel文件方法 Handler.ashx:生成动态Excel文件 public class Handler : IHttpHandler {     public void ProcessRequest (HttpContext context) {         context.Response.ContentType = "application/octet-stream";         string filename = HttpUtilit

C#中Excel文件的读取

excel 提供两种方法:一个是直接打开excel文件,然后逐行读取,速度较慢:还有一种方法是通过OleDb连接,把excel文件作为数据源来读取方法一:这种直接读取单元格的方法释放很重要.    Excel.Application excel = null;   Excel.Workbooks wbs = null;   Excel.Workbook wb = null;   Excel.Worksheet ws = null;   Excel.Range range1 = null;   o

excel文件-C#读取剪切板(Clipboard)中的数据的方法

问题描述 C#读取剪切板(Clipboard)中的数据的方法 小弟在这里求教各位大神一个问题,如何将excel文件数据表复制到VS的剪贴板中,再利用C#读取剪切板(Clipboard)中的数据的方法 解决方案 Clipboard.GetDataObject google 用法 解决方案二: http://www.cnblogs.com/_zjl/archive/2011/06/01/2066498.html 这个博客写的蛮清楚地 楼主可以参考一下 其实核心也就是调用GetDataObject 方