Excel表格与数据库的问题

整理一下前两天工作中遇到一些最基础的问题

因为工作需求,把Excel表导入数据库并,然后SQL语句进行业务逻辑操作,最后把结果集导出表格。当我听到这个任务时候,第一感觉没什么难度,结果实力打脸。

   问题一:Excel表格导入

解决方案一:

按照我学习过的思路,进行逻辑导入,转换成后缀.csv之后文件,打开cmd

格式:

sqlplus  userid=system/password control='d:\test.ctl';--这句命令先不执行

我们编辑需要执行的脚本test.ctl

load data

infile 'e:\text.csv'--.csv的位置

replace into table test--导入数据库的表名称,三个参数(replace替换)append(追加)insert(插入空表)

fields termindted by ','--字段分隔符

(a1,a2,a3)--导入的列明

这时候我们在运行第一条指令便可成功插入,本人测试插入失败,有可能表明错误。

解决方案二:

利用PL/SQL进行解决:

工具中输入select * from test where 1=2 for update

出现如下图,打开小锁,我们需要先把Excel内容全选复制,表格中的类型每一列,一定与数据库表类型一样,否则一定会失败!选中我们数据库整个行,粘贴上去就完成,别忘了打小绿色的对号,然后再提交,不能忘!!个人在领导的指导下学习完成,虽然按不是难题,没有真正的实操一切都等于零!

解决方案三:

利用PL/SQL自带的导入工具来完成(不啰嗦)

问题二:Excel表格默认科学计数法问题

那么导入之后惊奇的发现,一列number类型的值竟然不对而且表现形式为科学计数法,原因到底在哪里?经过排查并非转换过程中出现了错误,而是原本Excel表格中就是科学计数法!经过百度和学习知道当默认数值超过12位以上,默认是用科学计数法来显示的,也试过了很多方法,那么简单方便高效的方法分享给大家,总结如下

解决方案一:

鼠标选中右击,选择设置单元格,然后自定义类0(文本邮编等都可以),确定就可以变换成数字,不过有时候后面多出来几个零,但是我们相对来就可以进行操作!后缀.xls和.xlsx都可以那么.csv的保存之后再次打仍然为科学技术法未解决!

问题三:再次导入一个新表格时候发现日期格式(数字类型)和我数据库类型不一样

解决方案:

1、转换日期格式需要在本列后面加上一空列

2、选中日期列,数据-->分页-->分隔符号-->选择空格-->选中日期-->选择YMD,点击完成转换成功,如下图

转换前:

转换后:

问题四:工作完成后备份一定不可忘记,数据量小的时候,那么高效方便导出的方法,逻辑备份无疑最好的选择,总结如下

解决方案:

利用数据库逻辑备份exp(CMD命令)

格式:

exp system/[email protected] FILE=$path FULL=Y;

解释:

导出整个库需要权限提示是否获取权限

整篇的文章看上去没有太大的技术含量,工作中让人寸步难行,一起总结分享累计经验决定成败

原文地址:http://blog.51cto.com/13352079/2061213

时间: 2024-10-20 06:04:24

Excel表格与数据库的问题的相关文章

C#代码实现 Excel表格与Object互相转换,Excel表格导入数据库(.NET2.0 .NET4.0)

前些天在工作上遇到这个需求,在GitHub找到一个开源代码可以用,Fork了一个版本,整理一下发出来. ①.Net项目中使用Nuget安装一个 NPOI 包    https://github.com/tonyqus/npoi ②再Nuget安装 Chsword.Excel2Object 包    https://github.com/chsword/Excel2Object 也可以直接使用命令行(“Install-Package Chsword.Excel2Object”) 注:上述程序包是作

csv文件或者excel表格导入数据库

 将csv文件或者excel表格导入数据库的方法: Excel数据直接导入mysql会需要用到phpexcel开源类,详情使用可以参考这篇文章~ http://www.cnblogs.com/freespider/p/3284828.html 本文使用的方法是: Excel ——> CSV——>MySql 首先将excel另存为csv文件,然后开始分析数据. 代码如下: 1 <span style="font-size:18px;"><?PHP 2 //将

php语言中Excel表格导入数据库的方法详解

在php编程语言中,对于如何在Excel表格中导入数据库的方法是很多编程者比较头疼的一个问题,有些技术人员可能在百度尝试过搜索很多不同的问题,但是给出的答案经过自己测试之后,发现还是行不通,那么对此,燚轩科技也尝试了一下如何在Excel表格中导入数据库,现在将源代码展示给各位技术编程者,大家可以借鉴参考一下. public function saveexcel(){require_once('./Thinkphp/Extend/Vendor/PHPExcel-1.8/Classes/PHPExc

C#解决从含身份证号码的Excel表格导入数据库的问题

用C#做从Excel表导入SQL数据库时发现从EXCEL导入的身份证号码会变成科学表示方法. 解决这个问题是比较容易的,首先,打开电子表格,选中“身份证号码”一列,右键选择“设置单元格格式”,进入单元格格式界面,选择“数字”,选中“文本”格式.点击确定,返回原界面.选择身份证号码的第一行,在身份证号码前添加英文单引号('),例如:'450909198812129876 这样,后面的身份证号码会自动转换格式.再导入数据库,问题解决. 补充:数据库中的身份证号码类型最好不要设置为数字一类的,因为身份

Apache poi 固定Excel 表格导入数据库方法(列名对应数据库字段名)

java的poi技术读取Excel数据到MySQL

Asp.net--GridView控件--(1)高亮显示当前所在行,(2)高亮显示单击行,(3)绑定数据库数据,(4)分页,(5)导出到excel表格,(6)首列插入序号

//本页代码中的DB类及方法在http://www.cnblogs.com/Deerjiadelu/p/7252769.html中能查询到 (1)Asp.net--GridView控件--高亮显示当前所在行 protected void gvquery_DataBound(object sender, GridViewRowEventArgs e) { //高亮显示光标所在行 if (e.Row.RowType == DataControlRowType.DataRow)//判断当前行是不是数据

Java -&gt; 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)

写入: private void insertFile(HttpServletRequest request, HttpServletResponse response) throws IOException { String path_member = request.getParameter("path_member"); List list = this.insert("f:/tmp001.xls", "gs_sale_members");

mysql数据库表格导出为excel表格

在本地数据库中操作如下: 由于excel表格的编码是GBK,所以导出时要加一个设置字符编码: select * from 某个表 into outfile 'd:/文件名.xls' CHARACTER SET gbk;

使用NPOI将数据库里信息导出Excel表格并提示用户下载

使用NPOI进行导出Excel表格大家基本都会,我在网上却很少找到导出Excel表格并提示下载的 简单的代码如下 1 //mvc项目可以传多个id以逗号相隔的字符串 2 public ActionResult execl(string ids) 3 { 4 List<PayLog> list = new List<PayLog>(); 5 string[] idsstring = ids.Split(new char[] { ',' }, StringSplitOptions.Re