当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说明",在里面写操作说明。

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

关于Excel导入的问题记录相关推荐

  1. 10w 行级别数据的 Excel 导入,完整优化记录

    需求说明 项目中有一个 Excel 导入的需求:缴费记录导入 由实施 / 用户 将别的系统的数据填入我们系统中的 Excel 模板,应用将文件内容读取.校对.转换之后产生欠费数据.票据.票据详情并存储 ...

  2. 10w 行级别数据的 Excel 导入优化记录

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者 | 后青春期的Keats 来源 | https://w ...

  3. 10w行级别数据的Excel导入优化记录

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:后青春期的Keats www.cnblogs.com/kea ...

  4. 4次迭代!10w行级别数据的Excel导入优化记录

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 链接 ...

  5. Java后端:10w行级别数据的Excel导入优化记录

    一些细节 数据导入:导入使用的模板由系统提供,格式是 xlsx (支持 65535+行数据) ,用户按照表头在对应列写入相应的数据 数据校验:数据校验有两种: 字段长度.字段正则表达式校验等,内存内校 ...

  6. java超级简单到爆的Excel导入导出(easypoi)

    场景: 在日常工作中,excel导入导出,是十分常见的,有两种主流的技术,一种是jxl,另一种是poi,而easypoi就是对poi进行了封装,使得导入导出变得更加的简单,阿里巴巴也有封装的工具名叫E ...

  7. 将 Microsoft Excel 导入至 MySQL

    将 Microsoft Excel 导入至 MySQL 一.前言 我得到了一份 Microsoft Excel 表格,里面记录了数据信息需要导入至 SQL 数据库. 如果只是导入数据,当然用 MSSQ ...

  8. import excel to mysql_将 Microsoft Excel 导入至 MySQL

    将 Microsoft Excel 导入至 MySQL 一.前言 我得到了一份 Microsoft Excel 表格,里面记录了数据信息需要导入至 SQL 数据库. 如果只是导入数据,当然用 MSSQ ...

  9. 重复工作自动化——excel导入方案

    计算机与人相比,有什么优势?这个问题从计算机诞生之初就不断被回答:在重复性工作上,计算机有人类无法企及的计算速度和存储空间.因此,把重复性工作交给计算机,也就是常说的"可复用性", ...

最新文章

  1. python3在线手册_Python 3 手册
  2. 记一次TrustAnchor with subject异常解决
  3. Py之PIL:不一样的PS之利用PIL库的img.paste方法实现合成刘若英导演电影《后来的我们》海报设计
  4. 全国计算机等级考试题库二级C操作题100套(第27套)
  5. codeforces82 D. Two out of Three(记忆化搜索)
  6. 一个好用的小工具 thefuck
  7. python+Django 完成第一个后端项目--创建投票应用(一)
  8. signature=b21ede5d7e667b061a2058d2d4aba643,【D2D8524B18023CCDD6DBEEF2AB467
  9. MVC 如何设定默认默认路由为指定的Area下的某个action(笔记)
  10. EnglishWords——星期与月份
  11. qrc路径_Qt中的qrc文件
  12. 【UE4学习】01——UE4下载与安装
  13. opencv实现图片及视频流(摄像头)的人脸检测
  14. Excel表格中无法中间插入新行列! 提示:在当前工作表的最后一行或列中,存在非空单元格,解决方案
  15. 哇!家居环境居然能“可视化”?这守护真的牛
  16. 【贵州i茅台周年答题--答案】
  17. python有道字典_Python3基础 访问在线的有道词典
  18. Python 蜻蜓fm有声书批量下载 支持账号登录 原创源码
  19. 纽约比加州时间早3个小时
  20. 计算机应用基础答案2010,计算机基础(Excel2010)试题及答案

热门文章

  1. break、continue和return的使用
  2. 多迪技术总监揭秘:普通UI设计师与顶级UI设计师的区别是什么?
  3. jQuery中ajax的4种常用请求方式
  4. mysql游标循环的使用
  5. FMDB:中的用法介绍
  6. 学习笔记---母板页、用户控件、第三方控件及视图状态管理
  7. 安装apache+gd2(jpeg,png等)+mysql-client+php脚本
  8. 基于JQuery实现的幻灯片轮播(对时间间隔做严格控制)
  9. DUMP3 企业级电商项目
  10. python 爬虫代理