让我郁闷的Excel导入的问题......

问题描述

首先,Excel文档没有人为的空行,我完全删除了我在用vs2008调试导入的时候就没有问题,可以读取到Excel的数据到GridView,但当我用其他的机器访问网站,然后进入这个导入页面的时候,同样的文档却不能导入,实在不知道为什么......我试了很久,以前都没这些问题......下面是我的代码,希望各位给个答案,小弟多谢了!///<summary>///读取Excel文件///</summary>///<paramname="sender"></param>///<paramname="e"></param>protectedvoidbtnReadData_Click(objectsender,EventArgse){this.PanelGrid.Visible=true;stringname=this.FileExcel.PostedFile.FileName;try{if(name.Trim()==string.Empty||Path.GetExtension(name)!=".xls"){Response.Write("<script>alert('请选择Excel文件!')</script>");}else{stringstrcon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+name+";ExtendedProperties=Excel8.0";OleDbConnectionconn=newOleDbConnection(strcon);conn.Open();DataTabledt1=null;dt1=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);if(dt1==null||dt1.Rows.Count==0){return;}stringtablename=dt1.Rows[0]["TABLE_NAME"].ToString();stringstql="select报名参与人ID,用户名,报名人姓名,活动ID,活动名称,手机号码,IP,电子邮箱,固定电话,性别,参加日期,是否参加,是否迟到,是否早退,是否被选中,是否是体验用户,是否特批from["+tablename+"]";OleDbDataAdapteroda=newOleDbDataAdapter(stql,conn);System.Data.DataSetds=newSystem.Data.DataSet();oda.Fill(ds,"Player");DataTabledt=newDataTable();dt.TableName="Player";dt.Columns.Add("报名参与人ID",typeof(System.Int32));dt.Columns.Add("用户名",typeof(System.String));dt.Columns.Add("报名人姓名",typeof(System.String));dt.Columns.Add("活动ID",typeof(System.Int32));dt.Columns.Add("活动名称",typeof(System.String));dt.Columns.Add("手机号码",typeof(System.String));dt.Columns.Add("IP",typeof(System.String));dt.Columns.Add("电子邮箱",typeof(System.String));dt.Columns.Add("固定电话",typeof(System.String));dt.Columns.Add("性别",typeof(System.Int32));dt.Columns.Add("参加日期",typeof(System.DateTime));dt.Columns.Add("是否参加",typeof(System.Int32));dt.Columns.Add("是否迟到",typeof(System.Int32));dt.Columns.Add("是否早退",typeof(System.Int32));dt.Columns.Add("是否被选中",typeof(System.Int32));dt.Columns.Add("是否是体验用户",typeof(System.Int32));dt.Columns.Add("是否特批",typeof(System.Int32));dt.PrimaryKey=newDataColumn[]{dt.Columns["手机号码"]};dt.Rows.Clear();foreach(DataRowViewdrvinds.Tables["Player"].DefaultView){DataRowdr=dt.NewRow();if(dt.Rows.Count==0){dr["报名参与人ID"]=drv["报名参与人ID"];dr["用户名"]=drv["用户名"];dr["报名人姓名"]=drv["报名人姓名"];dr["活动ID"]=drv["活动ID"];dr["活动名称"]=drv["活动名称"];dr["手机号码"]=drv["手机号码"];dr["IP"]=drv["IP"];dr["电子邮箱"]=drv["电子邮箱"];dr["固定电话"]=drv["固定电话"];dr["性别"]=drv["性别"];dr["参加日期"]=drv["参加日期"];dr["是否参加"]=drv["是否参加"];dr["是否迟到"]=drv["是否迟到"];dr["是否早退"]=drv["是否早退"];dr["是否被选中"]=drv["是否被选中"];dr["是否是体验用户"]=drv["是否是体验用户"];dr["是否特批"]=drv["是否特批"];dt.Rows.Add(dr);}else{for(inti=0;i<dt1.Rows.Count;i++){if(dt.Rows.Contains(drv["手机号码"])){break;}else{dr["报名参与人ID"]=drv["报名参与人ID"];dr["用户名"]=drv["用户名"];dr["报名人姓名"]=drv["报名人姓名"];dr["活动ID"]=drv["活动ID"];dr["活动名称"]=drv["活动名称"];dr["手机号码"]=drv["手机号码"];dr["IP"]=drv["IP"];dr["电子邮箱"]=drv["电子邮箱"];dr["固定电话"]=drv["固定电话"];dr["性别"]=drv["性别"];dr["参加日期"]=drv["参加日期"];dr["是否参加"]=drv["是否参加"];dr["是否迟到"]=drv["是否迟到"];dr["是否早退"]=drv["是否早退"];dr["是否被选中"]=drv["是否被选中"];dr["是否是体验用户"]=drv["是否是体验用户"];dr["是否特批"]=drv["是否特批"];dt.Rows.Add(dr);}}}}ASPxGridView1.DataSource=dt;ASPxGridView1.DataBind();this.GridView1.DataSource=dt;this.GridView1.DataBind();conn.Close();}}catch(Exceptionex){Response.Write("<script>alert('操作失败!Excel文件无效!')</script>");}}

解决方案

解决方案二:
权限不够,先把要导入的excel上传到服务器再导。
解决方案三:
上面的大哥好像不完全是那样哦我在我本机访问我的网站也不能导入......

时间: 2024-08-04 03:11:37

让我郁闷的Excel导入的问题......的相关文章

一个老问题,关于C#Excel导入数据的问题

问题描述 大家好,一个关于Excel导入数据库的老问题,在网上搜了很多的方法,但还是提示"找不到可安装的ISAM",网上所有方法都试过了,但一直这样的提示,下面是代码,也是网上的:三天了,很郁闷.usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;using

关于Excel导入的问题记录

当Excel导入成为需要时,之前的导出Excel为html方式的方法就受阻了,于是,需要开始新的百度与google来解决问题. 前提为OLEDB+Excel. 根据需求,多数是对于表的数据的导入.于是产生这么一个需求过程: 1.准备一个空的标准Excel. 2.根据表名查询字段 3.动态生成字段表头 4.Copy空的标准Excel,循环表头生成新的标准Excel以二进制流导出. 5.用户再根据表头的提示添加数据再上传提交. (1步和4步为大体上为网上搜出来的想法) 过程遇到这么点问题: 问题1:

ASP.NETR把Excel导入SQL数据库的自定义类

ASP.NETR把Excel导入SQL数据库的自定义类 以下是引用片段:public class SaveToSql {   public string strNewCodeId = string.Empty;   public string strNewCode = string.Empty;   public string strNewDes = string.Empty;   public string strOldCodeId = string.Empty;   public strin

php excel导入mysql: EXCEL导入mysql

require_once 'phpexcel/Classes/PHPExcel/IOFactory.php';  require_once 'phpexcel/Classes/PHPExcel/Reader/Excel5.php';  $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format   $objPHPExcel = $objReader->load($filename)

从VB中的Datagride中向excel导入数据

datagrid|excel|导入数据   程序需要我在网上找了很久才找到刚刚把程序写好并加写了注释希望能帮助大家再写程序前先引用microsoft excel 11.0 object Library我看到的文章是10.0的我这是office2003是11.0只要安了excel就有这个引用~Private Sub cmdsave_Click()MsgBox "文件保存为: D:\电网配电线路管理信息系统\信息查询结果\事故信息查询结果.xls"    Dim i As Integer 

通用的高度可扩展的Excel导入实现

背景 通过程序将excel导入到数据库中是一项非常常见的功能.通常的做法是:先将excel转成DataTable,然后将DataTable转换成List<T>,最终通过List<T>导入进数据库. 同时,一般的ExcelUtil基类也会提供类似List<T> GetEntityListFromFile<T>(string fileName)的实现,但是这些实现一般都是机械化地对应,缺少一些自定义的操作. 问题 在我的开发过程中,就导入excel这一块就碰到了

如何高效的将excel导入sqlserver

大部分人都知道用oledb来读取数据到dataset,但是读取之后怎么处理dataset就千奇百怪了.很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,System.Data.SqlClient.SqlBulkCopy 对于新手来说还是比较陌生的,这个就是传说中效率极高的bcp,6万多数据从excel导入到sql只需要4.5秒. using System; using System.Data; using System.Windows.Forms; using System.Data.

c#中高效的excel导入oracle的方法

如何高效的将excel导入到oracle?和前两天的SqlBulkCopy 导入到sqlserver对应,oracle也有自身的方法,只是稍微复杂些. 那就是使用oracle的sql*loader功能,而sqlldr只支持类似csv格式的数据,所以要自己把excel转换一下. 实现步骤: 用com组件读取excel-保存为csv格式-处理最后一个字段为null的情况和表头-根据excel结构建表-生成sqlldr的控制文件-用sqlldr命令导入数据 这个性能虽然没有sql的bcp快,但还是相当

PHP将Excel导入数据库及数据库数据导出至Excel的方法

         本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法.分享给大家供大家参考.具体实现方法如下:          一.导入           导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载 提取码:vxyn.(注意两个文件有引用关系) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?php //传入要导入的Excel的文件