zoukankan      html  css  js  c++  java
  • 操作Excel导入的问题(转)

    当Excel导入成为需要时,之前的导出Excel为html方式的方法就受阻了,于是,需要开始新的百度与google来解决问题。

    前提为OLEDB+Excel。

    根据需求,多数是对于表的数据的导入。于是产生这么一个需求过程:

    1。准备一个空的标准Excel。

    2。根据表名查询字段

    3。动态生成字段表头

    4。Copy空的标准Excel,循环表头生成新的标准Excel以二进制流导出。

    5。用户再根据表头的提示添加数据再上传提交。

    1步和4步为大体上为网上搜出来的想法)

    过程遇到这么点问题:

    问题1:

    网上1步和4步的想法,是先做好标准Excel,直接导出。所以代码上用的insert into table直接往表添加数据了。

    于本人的需求有点差距了,异常折腾了半天才折腾到用了Create Table。于是引发了第二个问题:

    问题2:

    在为Excel Create Table 时,报“不能修改表'xxxx' 的设计。它在只读数据库中”,经自己这么一想,再经网上那么一忽悠。权限问题!。for遍了网络,都直指这个权限问题。

    于是就是一堆的往文件夹添加IUser_用户名或EveryOne权限的解决方案,是挺折磨人的,检查了N百遍还是报的错。

    最后在某处看到一条关于数据链接链接的解释如下:

    代码
    如果把Excel看作数据库,那么要注意连接字符串:

    private readonly string readConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source={0};"

                  +"Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'";

    HDR=YES 表示将sheet的第一行作为列名,所以我们默认excel的首行是列名。

    IMEX=1 表示大致的意思是使用导入的模式,把数字也作为字符串来操作。


        有一点很重要。IMEX=1,是一种导入的模式,所以首先这个文件要存在,如果不存在会报错:“Microsoft Jet 数据库引擎找不到对象'…Customer.xls'。请确定对象是否存在,并正确地写出它的名称和路径”,而且这样写了以后就算文件是存在的,还有一个问题是不能对文件更新的,会提示“不能修改表 'sheet1' 的设计。它在只读数据库中”等错误,甚至还有提示权限的问题。

    于是去掉IMEX=1,问题解决。

    于是问题3也产生了:

    新建的表默认都排在最后了,无法排在第一个,这样用户打开看到空的就不好,于是drop table xxx---》无效

    忽悠下自己是不是方法不对头,上网搜。于是又发现这么段说明:

    虽然 Jet OLE DB 提供程序允许您在 Excel 工作簿中插入和更新记录,但是不允许进行 DELETE(删除)操作。如果您尝试对一个或多个记录执行 DELETE 操作,您将收到以下错误信息: 
    Deleting data in a linked table is not supported by this ISAM.


    这是将 Excel 工作簿作为数据库进行处理时所固有的限制。

    于是,想了一个比较搜的主意

    在空的Excel里删除两个Sheet(默认有三个,系统限制必须存在一个)

    然后将剩下的一个改名叫“xxx说明",在里面写操作说明。

    至此,将就解决,还有很多工作排成队在后面......

    版权声明:本文原创发表于 博客园,作者为 路过秋天
  • 相关阅读:
    SGU 176.Flow construction (有上下界的最大流)
    POJ 2391.Ombrophobic Bovines (最大流)
    poj 1087.A Plug for UNIX (最大流)
    poj 1273.PIG (最大流)
    POJ 2112.Optimal Milking (最大流)
    SGU 196.Matrix Multiplication
    SGU 195. New Year Bonus Grant
    关于multicycle path
    ppt做gif动图
    codeforces 598A Tricky Sum
  • 原文地址:https://www.cnblogs.com/sungcong/p/3434317.html
Copyright © 2011-2022 走看看