另开贴给分会有倒分嫌疑的哈
oracle自身很难做到这点,它只是用来存储数据的系统,只能对文本进行编辑
如果用java就很容易实现

解决方案 »

  1.   

    如果用java就很容易实现 ?
    这个我不懂
      

  2.   

    参考下这里
    http://wenku.baidu.com/link?url=-pqfXZnXSc6NFcwP2BS7350BUktbJ2R4zEtW6xQQGXzHPZX-aBgxVhVtv3GsMXkOrp5R8EaHaDcoSbh7f5DaZEMlUNqltkPmYPWpI4DHbuy
    可以试试
    我们这边都是自己写java程序来做的
      

  3.   

    excel 可以存成 xml 格式,LZ可以存一个试试。这种 xml 格式 用记事本这类工具修改完后,还可以被 excel 打开,字体、格式、颜色 都可以保留,支持多个 sheet 。实现方法:1.制定导出excel 的模板。
    2.研究一下格式 。
    3.用plsql 的 system.output 方法去写文件。服务器上写文件,不能在客户端写
    4.把写的好文件,用 URL 的形式下载到客户端。
      

  4.   

    你可以写一个文件名*..xls文件,,也可以使用excel打开,,具体语法你要去微软技术官网看下。
      

  5.   

    查询-复制到execl,只能通过菜单或快捷键实现。应该有相应的脚本吧?
      

  6.   

    1. 从pl/sql developer查询的结果中点右键,选择拷贝到excel2. 用sqlplus的spool功能,例如(以下在sqlplus中执行):set linesize 10000
    set term off verify off feedback off pagesize 10000 
    set up html on entmap ON spool on preformat off
    spool d:\emp.xls
    select * from scott.emp;
    spool off打开生成的文件,即可看到数据3. utl_file包
    这个比起第二种方法要可控,缺点是,生成的文件在directory中,即只能在实例所在的系统上。可以生成以后把文件拷出来
    举个例子,创建一个directory :test_dir,对应路径:/home/oracle/test
    create directory test_dir as '/home/oracle/test';
    保证执行存储过程的用户对该目录有read,write的权限,以及对utl_file包的执行权限。如果用具有dba角色权限的用户,则可以忽略declare
    xls_file utl_file.file_type;
    dir_name varchar2(30):='TEST_DIR';
    file_name varchar2(100):='emp.xls';
    begin
      xls_file:=utl_file.fopen(dir_name,file_name,'W');
      for x in (select empno,ename,job,mgr,hiredate,sal,comm,deptno from scott.emp)loop
        utl_file.put_line(xls_file,x.empno||chr(9)||x.ename||chr(9)||x.job||chr(9)||x.mgr||chr(9)||x.hiredate||chr(9)
          ||x.sal||chr(9)||x.comm||chr(9)||x.deptno);
      end loop;
      utl_file.fclose(xls_file);
    end;
    chr(9)输出的是tab,用来将两个字段的输出放在excel的两列上