oracle数据导出到excel

Adebayor 2010-04-19 09:20:59
我想把database的数据导出到excel
导出的数据有格式要求 如:文字列,数据只占一个单元格,列名有背景色
这些oracle能实现吗?
可以的话 最好通过spool或sqlloader实现
期待高手
...全文
981 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
iqlife 2010-04-26
  • 打赏
  • 举报
回复
呵呵,昨天成功试验了ORACLE发送邮件和附件的功能了,这几天试试用存储过程操作POI,成功的话,嘿嘿嘿一个KPI就拿下来,奖励200元.....
patrickjiang 2010-04-26
  • 打赏
  • 举报
回复
LZ,写JAVA代码解决吧
zhanhuaquan 2010-04-26
  • 打赏
  • 举报
回复
我公司用的是oracle数据库,用delphi编写导出excel程序,在oracle form中执行,效果非常好,手工操作excel的一切效果,delphi都可做到.我有原程序,如需要可以加我QQ 275633688
Adebayor 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 adebayor 的回复:]
我想把database的数据导出到excel
导出的数据有格式要求 如:文字列,数据只占一个单元格,列名有背景色
这些oracle能实现吗?
可以的话 最好通过spool或sqlloader实现
期待高手
[/Quote]
我的这个实验 估计要泡汤了
文字列,列名有背景色 这些格式都pass了 还是有问题
Adebayor 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 java3344520 的回复:]

呵呵,昨天成功试验了ORACLE发送邮件和附件的功能了,这几天试试用存储过程操作POI,成功的话,嘿嘿嘿一个KPI就拿下来,奖励200元.....
[/Quote]
ORACLE发送邮件和附件? 呵呵 好想法
与outlook吗?
bjsavage 2010-04-26
  • 打赏
  • 举报
回复
好的,学习了。
orava 2010-04-24
  • 打赏
  • 举报
回复
通过spool可以导出成*.csv 格式,但是它是只是以“,”分隔的纯文本格式,是不能控制excel的格式的,要控制excel格式只能utl_file包写文件了
yubin88 2010-04-23
  • 打赏
  • 举报
回复
楼主可以试试用java程序导~~~~
需要的包为oracle 驱动包,apache下的poi包
import java.io.*;
import java.sql.*;
import org.apache.poi.hssf.usermodel.*;

public class AppMain {
public AppMain() {
}

public static void main(String[] args) {
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet =null;

/**连接ORACLE的数据库,关键在于两个系统级的VIEW:
all_tab_columns 记录着ORACLE所有的字段定义信息.
DBA_COL_COMMENTS 记录着字段的注释信息,*/


Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.111:1521:ncdb", "system", "fty001");
Statement stmt = con.createStatement();
StringBuffer strbuf = new StringBuffer();
strbuf.append("SELECT A.*,B.comments");
strbuf.append(" FROM all_tab_columns A,DBA_COL_COMMENTS B");
strbuf.append(" WHERE A.owner=B.owner");
strbuf.append(" AND A.table_name=B.table_name");
strbuf.append(" AND A.COLUMN_NAME=B.COLUMN_NAME");
//owner是建立表的用户名
strbuf.append(" AND A.owner='SCOTT'");
strbuf.append(" ORDER BY A.TABLE_NAME");
ResultSet rs = stmt.executeQuery(strbuf.toString());

String tb = "";
int k = 0;
while (rs.next()) {
//对每个表生成一个新的sheet,并以表名命名
if (!tb.equals(rs.getString("TABLE_NAME"))) {
sheet = wb.createSheet(rs.getString("TABLE_NAME"));
//设置表头的说明
HSSFRow row = sheet.createRow(0);
setCellGBKValue(row.createCell((short) 0),"字段名");
setCellGBKValue(row.createCell((short) 1),"字段类型");
setCellGBKValue(row.createCell((short) 2),"字段长度");
setCellGBKValue(row.createCell((short) 3),"数字长度");
setCellGBKValue(row.createCell((short) 4),"小数位数");
setCellGBKValue(row.createCell((short) 5),"能否为NULL");
setCellGBKValue(row.createCell((short) 6),"字段说明");
k = 1;
} else {
k++;
}
tb = rs.getString("TABLE_NAME");
HSSFRow row = sheet.createRow(k);
row.createCell((short) 0).setCellValue(rs.getString(
"COLUMN_NAME"));
row.createCell((short) 1).setCellValue(rs.getString("DATA_TYPE"));
row.createCell((short) 2).setCellValue(rs.getString(
"DATA_LENGTH"));
row.createCell((short) 3).setCellValue(rs.getString(
"DATA_PRECISION"));
row.createCell((short) 4).setCellValue(rs.getString(
"DATA_SCALE"));
row.createCell((short) 5).setCellValue(rs.getString("NULLABLE"));
setCellGBKValue(row.createCell((short) 6),rs.getString("COMMENTS"));

}

//把生成的EXCEL文件输出保存
FileOutputStream fileOut = new FileOutputStream("E:\\数据字典.xls");
wb.write(fileOut);
fileOut.close();

rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}

/**

这个函数是为了设置一个CELL为中文字符串

*/

private static void setCellGBKValue(HSSFCell cell, String value) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//设置CELL的编码信息
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(value);
}
}
mengxj85 2010-04-21
  • 打赏
  • 举报
回复
来学习学习,每天进步一点
Phoenix_99 2010-04-20
  • 打赏
  • 举报
回复
用前台导出吧,数据库好像满足不了你的要求
Adebayor 2010-04-20
  • 打赏
  • 举报
回复
不要使用toad 那样还不如我手动操作excel了呢
徐小路 2010-04-20
  • 打赏
  • 举报
回复
用java吧!!!!
cyousor 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sosoyiyi 的回复:]

toad绝对实现不了楼主的需求,而且toad对中文支持的不好
[/Quote]

可以啊,
save grid contents -> xls file->
在这里设置一下,
对于中文,要把write wide strings 那个选项勾上,
应该没问题。
sosoyiyi 2010-04-20
  • 打赏
  • 举报
回复
toad绝对实现不了楼主的需求,而且toad对中文支持的不好
cyousor 2010-04-20
  • 打赏
  • 举报
回复
用toad能实现你要的,
只不过。。。
Adebayor 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tianlesoftware 的回复:]
在spool的时候,可以导出成网页形式的excel。 看上去比较整齐, 不知道能否达到你的要求, 而且它的颜色也是比较亮的。 下面是我用的个脚本。


test.sql
SQL code

conn USER/PWD@SID

set heading off
Set pagesize 0
Set term off
Set feedback off
set linesize 99999
……
[/Quote]
这种方式我试过 效果不行
目的主要是想办公自动化
iqlife 2010-04-20
  • 打赏
  • 举报
回复
6楼,我试了下,导出来的结果如下
工号 姓名 薪水 部门号
7369, SMITH, 800, 20,
7499, ALLEN, 1600, 30,
7521, WARD, 1250, 30,
7566, JONES, 2975, 20,
7654, MARTIN, 1250, 30,
7698, BLAKE, 2850, 30,
没有更好的效果了?
碧水幽幽泉 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tianlesoftware 的回复:]
在spool的时候,可以导出成网页形式的excel。 看上去比较整齐, 不知道能否达到你的要求, 而且它的颜色也是比较亮的。 下面是我用的个脚本。


test.sql

SQL code

conn USER/PWD@SID

set heading off
Set pagesize 0
Set term off
Set feedback off
set linesi……
[/Quote]

up!
iqlife 2010-04-20
  • 打赏
  • 举报
回复
不能进行EXCEL操作的,我之前也想在ORACLE里写,但是发现可能需要在JAVA存储过程里写.不会就暂时搁置了了....
Dave 2010-04-19
  • 打赏
  • 举报
回复

在spool的时候,可以导出成网页形式的excel。 看上去比较整齐, 不知道能否达到你的要求, 而且它的颜色也是比较亮的。 下面是我用的个脚本。


test.sql

conn USER/PWD@SID

set heading off
Set pagesize 0
Set term off
Set feedback off
set linesize 99999
set trimspool off
set term off verify off feedback off pagesize 99999
set markup html on entmap ON spool on preformat off

spool D:\重建客户资料\重建客户资料.xls
select '顾客卡号','类型','时间','工号','电话','区号','地址' from dual
union all
select custid||',', custtype||',', regdate||',', opid||',', custcode||',', areacode||',',addrabb
from rebuilduser;
spool off
exit



只要定时执行这个批处理就可以了:test.bat

set oracle_sid=SID
sqlplus /nolog @test.sql
exit


具体用法,可以参考我的BLog:sqlplus SPOOL 导出网页文件
http://blog.csdn.net/tianlesoftware/archive/2010/01/30/5270191.aspx



------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977
加载更多回复(5)
内容概要:本文围绕发光太阳聚光器开展蒙特卡洛光线追踪研究,重点利用Matlab编程实现光线在聚光系统中的传播路径模拟。通过蒙特卡洛方法对大量随机光线进行统计追踪,精确分析光能在接收面上的分布特性、聚焦效率及系统整体光学性能,进而评估不同几何结构与材料参数对聚光效果的影响,为高效太阳能收集系统的设计与优化提供理论依据和技术支持。研究不仅涵盖核心算法实现,还结合多个跨领域科研案例(如电力系统、路径规划、信号处理、机器学习等),展示了Matlab/Simulink在科研建模与仿真中的广泛应用价值,突出了算法仿真与多学科交叉融合的重要性。; 适合人群:具备一定Matlab编程基础,从事光学工程、新能源技术、仿真建模及相关领域研究的科研人员,尤其适合研究生及青年研究人员。; 使用场景及目标:①掌握蒙特卡洛方法在光学系统仿真中的原理与应用;②学习使用Matlab实现光线发射、反射、折射及能量统计的完整追踪流程;③通过实际代码实践优化聚光器结构设计;④借鉴文中多领域仿真案例,拓展科研视野与技术迁移能力; 阅读建议:此资源以代码实现为核心,建议读者结合Matlab环境动手运行与调试程序,重点关注光线追踪的物理建模与数值计算细节,并参照其他仿真范例举一反三,全面提升科研建模与算法实现能力。
内容概要:本文复现并深入探讨了一种基于价格弹性矩阵的居民峰谷分时电价激励策略,属于电力系统需求响应领域的关键技术研究。研究通过构建价格弹性矩阵精确刻画居民用户对不同时段电价变化的用电行为响应特性,结合优化算法设计科学合理的峰谷分时电价方案,有效引导用户在高峰时段减少用电、低谷时段增加用电,实现削峰填谷,提升电网运行稳定性与能源利用效率。文中配套提供了完整的Matlab代码实现,涵盖数据处理、模型构建、优化求解及结果可视化等模块,具有较强的可复现性与工程应用价值,适用于需求侧管理政策仿真与学术研究。; 适合人群:面向具备一定电力系统基础知识、能源经济学或需求响应研究背景的科研人员,以及从事相关课题的硕士、博士研究生;熟悉Matlab编程且关注智能电网优化的技术人员亦可从中获益。; 使用场景及目标:①用于居民侧用电行为建模与电价敏感性分析;②支撑峰谷电价政策的设计、仿真评估与优化调整;③作为高校教学中需求响应机制的算法实现案例与科研入门实践项目。; 阅读建议:建议读者结合Matlab代码逐模块解析其实现逻辑,重点掌握价格弹性矩阵的构造方法、目标函数与约束条件的数学建模过程,以及优化求解器的调用方式,同时可尝试引入其他智能优化算法进行对比实验,以深化对电价激励机制设计原理的理解与创新能力。
内容概要:本文详细介绍了基于Matlab实现的无人机FMCW(调频连续波)毫米波高度计雷达仿真技术,系统阐述了雷达测高系统的工作原理、信号建模方法及完整的信号处理流程。通过构建发射信号与地面回波信号模型,依次完成混频、低通滤波、傅里叶变换(FFT)等关键处理步骤,提取差拍频率以精确计算无人机飞行高度,并对测高精度、分辨率及系统参数影响进行仿真分析与验证。该仿真平台不仅有助于深入理解毫米波雷达在复杂环境下的工作特性,也为无人机地形跟随、精准着陆、低空避障等应用场景提供了可靠的技术支撑和算法验证手段。; 适合人群:具备雷达原理、信号与系统、数字信号处理等相关基础知识,从事无人机导航、毫米波雷达开发、自动驾驶传感系统或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入掌握FMCW雷达测距测高的物理机制与数学建模方法;②熟练运用Matlab进行雷达信号仿真与算法实现,提升实际编程与系统调试能力;③为后续开展真实雷达系统开发、测高算法优化或融合其他传感器(如IMU、GPS)的组合导航研究提供理论依据与仿真基础。; 阅读建议:建议结合经典雷达原理教材同步学习,重点理解chirp信号设计、混频后差拍信号特征以及FFT在频率提取中的作用,通过调整带宽、扫频周期、采样率等参数进行仿真实验,观察其对测高性能的影响,从而深化对系统设计关键指标的综合把握。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧