SQL导入和导出EXECL的例子
来源:互联网 发布:幸福网络 编辑:程序博客网 时间:2024/05/15 13:12
要不是小白同学让我帮他,合并这两个execl表格,我还一直没试过用sql去直接导入和导出execl.废话不多说,我们先看小白同学给的两张execl文件.一张为成绩表,里面有班级和名字以及各科成绩和名次,惟独缺少学号.为了方便我改成chengji.xls的名字,如下图:(截取部分图)
一张为学号和班级以及姓名的表,同样我改为dakao.xls的名字,如下图:(截取部分图)
我们要做的是,把以上两张表合并起来,让dakao.xls表里的学号和chengji.xls表里的人名和他们对应的成绩都对应起来,再重新生成一张execl表.
首先打开sql企业管理器,我们在里面新建一个数据库,名为newtable.然后,进入查询分析器下,我们选中刚新建的数据库newtable,输入如下语句:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/chengji.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
这句的意思是,读取chengji.xls文件的Sheet1$,并新建一个表名为newtable,将刚读取的信息,写进改表.
我们可以查询下看看,是不是都写进来了.
运行下 select * from newtable
如下图:
(我们将chengji.xls和dakao.xls都放入C盘,(这个放在什么位置,随便大家,只是'Data Source="c:/chengji.xls";这个要根据你放的路径一样.))
同样,我们再把dakao.xls的文件写进另一张表dakao里,sql语句如下:
SELECT * dakao
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/dakao.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
再查询下,看结果如何:
select* from dakao
如下图:
我们现在要做的是,将两张表里的人名和学号对应起来,现在在同一个数据库里的两张表,应该好办多了,查看数据之间的关系,我们可以写出如下语句:
select newtable.化学,newtable.历史,newtable.名次,newtable.名次1,newtable.名次2,newtable.名次3,newtable.名次4,newtable.名次5,newtable.名次6,newtable.名次7,newtable.数学,newtable.物理,newtable.姓名,newtable.英语,newtable.语文,newtable.政治,newtable.总分,dakao.班级,dakao.学号 from newtable,dakao where newtable.姓名=dakao.姓名 and newtable.班级=dakao.班级 order by 总分 desc
查找两张表,如果两张表中的班级和姓名都一样,那么合并这两条数据,让学号和姓名以及成绩对应起来,并按总分,从高到低排序.(当然这里如果同一班级有同名的人,那就没办法解决了,如果出现这种情况,人也没办法分别谁是谁,更别说程序了)
查询结果如下图:
我们在查询结果上,点右键,然后点全选,再另存为new.xls(保存类型选所有文件(**)下面的 列分隔符选 制表符分隔 )
就可以得到我们要的新的execl文件了,如下图:
这里,的表头是没有自动生成的,我们手工添上去好了.还有学号这一列,是采用了科学记数法,这不是我们要的,我们可以选中这一列,右键,选择设置单元格格式,选特殊--->邮政编码 就可以了.得出以下的文件:如图:
这就是我们需要的结果.new.xls文件的截图.
注:
use master
go
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'Ad Hoc Distributed Queries', 1
go
reconfigure
go
use newtable
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:/text.xls',sheet1$)
select newtable.化学,newtable.历史,newtable.名次,newtable.名次1,newtable.名次2,newtable.名次3,newtable.名次4,newtable.名次5,newtable.名次6,newtable.名次7,newtable.数学,newtable.物理,newtable.姓名,newtable.英语,newtable.语文,newtable.政治,newtable.总分,dakao.班级,dakao.学号 from newtable,dakao where newtable.姓名=dakao.姓名 and newtable.班级=dakao.班级
这个用语句将sql查询的记录集,在C盘生成text.xls的文件,这个经我实验,得出来的数据会乱掉,不灵个.不如直接手动另存为xls格式.
- SQL导入和导出EXECL的例子
- Java实现对execl的导入和导出
- sql server 导入导出数据到execl
- java对Execl的导入导出
- MySQL 导入导出Execl
- laravel 导入导出Execl
- Execl (转)导入导出execl 全
- DevExpress.XtraGrid Execl导入导出
- php导入导出execl方法
- Spring学习笔记(三十三):导入execl和导出execl并通过浏览器进行下载
- java对execl的导入、导出操作-- POI / JXL
- java对execl的导入、导出操作-- POI / JXL .
- asp.net中Execl文件的导入导出
- 使用POI操作EXECL做数据的导入与导出
- 【PHPExecl】PHP简单实现Execl的导入导出【原创】
- sql excel 的导入和导出
- Sql的导入导出
- 一个ORACLE导入和导出XML文件的例子
- a.out的故事
- html:file上传文件
- Posting Data to a Connected Database
- Windows apache django 配置指南
- jsp request 对象详解
- SQL导入和导出EXECL的例子
- 民间借贷逆境中谋变
- jQuery插件blockUI
- PKCS#11的部分使用例码,仅供参考
- 游戏AI算法
- MYSQL数据的行列置换
- Delphi for PHP 测试手记
- 蒙特卡罗算法在游戏(围棋)AI中的应用
- C#获取当前系统的活动窗体和状态