zoukankan      html  css  js  c++  java
  • 导入Excle数据至数据库 “外部表不是预期的格式”错误信息

    在操作excel将数据从外部导入到数据库时,

    刚开始操作的没有问题的,却报出了:“外部表不是预期的格式”错误信息。

    仔细查看excel没有问题,

    查阅资料,发现有人说:

    解决方法:
    用记事本打开你的excel文件,看看显示是否为乱码。
    若是html代码,则表示你的excel文件格式不是标准的excel格式,才会提示“外部表不是预期的格式”的错误;
    若是乱码,我这边测试是不会提示这个错误的,可以成功导入。

    其实出现这个错误的原因是,你的Excel是从程序中导出的,并且是使用 
    Response的方式直接把html代码输出到Excel中的 
    其实是可以解决的,导出的时候使用Excel操作Api来导出就是标准格式
    -----------------------------------------------------------------------------------------------------
    遇到了这个问题,Response输出的EXCEL文件修改后上传更新时出错,
    “外部表不是预期的格式”
    解决方式:
    1.用EXCEL另存为功能另存成标准格式XLS格式(Response导出的其实是网页文件)

    文章出处:http://www.cnblogs.com/Fly-sky/archive/2009/11/03/1595227.html

    附上导入excel数据的代码:

    代码
     1 /// <summary> 
     2 /// 读取Excel文档 
     3 /// </summary> 
     4 /// <param name="Path">文件名称</param> 
     5 /// <returns>返回一个数据集</returns> 
     6 public DataSet ExcelToDS(string Path) 
     7 
     8 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"
     9 OleDbConnection conn = new OleDbConnection(strConn); 
    10 conn.Open(); 
    11 string strExcel = ""
    12 OleDbDataAdapter myCommand = null
    13 DataSet ds = null
    14 strExcel="select * from [sheet1$]";//这也是不方便的一点,如果修改excel文件sheet的名称,这里也要跟着变化。如果名称不对会报错:'Sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。原因就在这里。
    15 myCommand = new OleDbDataAdapter(strExcel, strConn); 
    16 ds = new DataSet(); 
    17 myCommand.Fill(ds,"table1"); 
    18 return ds; 
    19 

    碰到过的问题,查一下,记录下来,虽有重复,可供参考。呵呵,错一点,改一点,也就进步了。开心,好运!

  • 相关阅读:
    linux 备份当前文件
    zz Apache 2.2.15 + PHP 5.3.2+ mysql windows环境配置
    zz iframe父子窗口间js方法调用
    批处理命令里获取本机的机器名
    Cache Concurrency Problem False Sharing
    因为添加assembly到GAC引起的Windows Azure Web Role部署失败
    求数组中满足a[i]<a[j]的相距最远的元素
    Dispose模式
    比较汇编指令 LEA 和 MOV
    读写Unicode字符串(UTF8,UTF16…)
  • 原文地址:https://www.cnblogs.com/angleSJW/p/1702676.html
Copyright © 2011-2022 走看看