壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10736|回复: 16

excel报表解决方法

[复制链接]
发表于 2005/7/29 00:36:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
长久以来,oracle运行的excel报表经常采用csv格式,用户需要view output,然后另存为本地csv文件,才能用excel打开,而且不能保留excel格式,包括字段长度,字段格式掩码,以及公式等。

因为项目需要excel文件包含公式,所以采用以下方案解决。

(1)将格式template文件在excel中制做,保存时,选取XML Spreadsheet格式,生成xml 模板文件,这样这个文件可以包含公式等。

(2)采用fnd_file.put_line方式将xml模板文件输出,数据列可以依据编程要求修改。

(3)建立concurrent program采用XML输出方式。

(4)这样用户在view output时候,浏览器可以自动打开这个excel文件。

附上package源代码,本例子在application 11.5.8,和本机excel 2003,ie6.0测试正常。[upload=rar]viewFile.asp?ID=134[/upload]

Y8cmlGI5.rar

1.22 KB, 下载次数: 98, 下载积分: 努力值 -5 点

excel报表解决方法

 楼主| 发表于 2005/7/29 00:41:37 | 显示全部楼层
一下为Sample函数包:
create or replace package TEST_XML_PKG is
  procedure main(errbuf            OUT VARCHAR2,
                 retcode           OUT VARCHAR2);
end TEST_XML_PKG;
/
create or replace package body TEST_XML_PKG is
procedure main(errbuf            OUT VARCHAR2,
               retcode           OUT VARCHAR2)
is
begin
fnd_file.put_line(fnd_file.output,'<?xml version="1.0"?>');
fnd_file.put_line(fnd_file.output,'<?mso-application progid="Excel.Sheet"?>');
fnd_file.put_line(fnd_file.output,'<Workbook xmlns="urn:schemas-microsoft-comffice:spreadsheet"');
fnd_file.put_line(fnd_file.output,' xmlns:o="urn:schemas-microsoft-com:office:office"');
fnd_file.put_line(fnd_file.output,' xmlns:x="urn:schemas-microsoft-com:office:excel"');
fnd_file.put_line(fnd_file.output,' xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"');
fnd_file.put_line(fnd_file.output,' xmlns:html="'">http://www.w3.org/TR/REC-html40">');
fnd_file.put_line(fnd_file.output,' <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">');
fnd_file.put_line(fnd_file.output,'  <Author>Authorised User</Author>');
fnd_file.put_line(fnd_file.output,'  <LastAuthor>Authorised User</LastAuthor>');
fnd_file.put_line(fnd_file.output,'  <Created>2005-01-26T07:43:18Z</Created>');
fnd_file.put_line(fnd_file.output,'  <Company>test</Company>');
fnd_file.put_line(fnd_file.output,'  <Version>11.6360</Version>');
fnd_file.put_line(fnd_file.output,' </DocumentProperties>');
fnd_file.put_line(fnd_file.output,' <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">');
fnd_file.put_line(fnd_file.output,'  <WindowHeight>5070</WindowHeight>');
fnd_file.put_line(fnd_file.output,'  <WindowWidth>10635</WindowWidth>');
fnd_file.put_line(fnd_file.output,'  <WindowTopX>360</WindowTopX>');
fnd_file.put_line(fnd_file.output,'  <WindowTopY>75</WindowTopY>');
fnd_file.put_line(fnd_file.output,'  &ltrotectStructure>False</ProtectStructure>');
fnd_file.put_line(fnd_file.output,'  <ProtectWindows>False</ProtectWindows>');
fnd_file.put_line(fnd_file.output,' </ExcelWorkbook>');
fnd_file.put_line(fnd_file.output,' <Styles>');
fnd_file.put_line(fnd_file.output,'  <Style ss:ID="Default" ss:Name="Normal">');
fnd_file.put_line(fnd_file.output,'   <Alignment ss:Vertical="Center"/>');
fnd_file.put_line(fnd_file.output,'   <Borders/>');
fnd_file.put_line(fnd_file.output,'   <Font ss:FontName="新細明體" x:Family="Roman" ss:Size="12"/>');
fnd_file.put_line(fnd_file.output,'   <Interior/>');
fnd_file.put_line(fnd_file.output,'   <NumberFormat/>');
fnd_file.put_line(fnd_file.output,'   <Protection/>');
fnd_file.put_line(fnd_file.output,'  </Style>');
fnd_file.put_line(fnd_file.output,'  <Style ss:ID="s21">');
fnd_file.put_line(fnd_file.output,'   <Font ss:FontName="Arial Unicode MS" x:CharSet="134" x:Family="Swiss"');
fnd_file.put_line(fnd_file.output,'    ss:Size="12"/>');
fnd_file.put_line(fnd_file.output,'  </Style>');
fnd_file.put_line(fnd_file.output,'  <Style ss:ID="s22">');
fnd_file.put_line(fnd_file.output,'   <Font ss:FontName="Arial Unicode MS" x:CharSet="134" x:Family="Swiss"');
fnd_file.put_line(fnd_file.output,'   ss:Size="12" ss:Color="#FF0000"/>');
fnd_file.put_line(fnd_file.output,'  </Style>');
fnd_file.put_line(fnd_file.output,' </Styles>');
fnd_file.put_line(fnd_file.output,' <Worksheet ss:Name="Sheet1">');
fnd_file.put_line(fnd_file.output,'  <Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="1" x:FullColumns="1"');
fnd_file.put_line(fnd_file.output,'   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="16.5">');
fnd_file.put_line(fnd_file.output,'   <Row ss:Height="17.25">');
fnd_file.put_line(fnd_file.output,'    <Cell ss:StyleID="s22"><Data ss:Type="Number">11</Data></Cell>');
fnd_file.put_line(fnd_file.output,'    <Cell ss:StyleID="s21"><Data ss:Type="Number">4</Data></Cell>');
fnd_file.put_line(fnd_file.output,'<Cell ss:StyleID="s21" ss:Formula="=RC[-2]*RC[-1]"><Data ss:Type="Number">44</Data></Cell>');
fnd_file.put_line(fnd_file.output,'   </Row>');
fnd_file.put_line(fnd_file.output,'  </Table>');
fnd_file.put_line(fnd_file.output,'  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">');
fnd_file.put_line(fnd_file.output,'   <Print>');
fnd_file.put_line(fnd_file.output,'    <ValidPrinterInfo/>');
fnd_file.put_line(fnd_file.output,'    <PaperSizeIndex>9</PaperSizeIndex>');
fnd_file.put_line(fnd_file.output,'    <HorizontalResolution>600</HorizontalResolution>');
fnd_file.put_line(fnd_file.output,'    <VerticalResolution>0</VerticalResolution>');
fnd_file.put_line(fnd_file.output,'   </Print>');
fnd_file.put_line(fnd_file.output,'   <Selected/>');
fnd_file.put_line(fnd_file.output,'   <Panes>');
fnd_file.put_line(fnd_file.output,'    <Pane>');
fnd_file.put_line(fnd_file.output,'     <Number>3</Number>');
fnd_file.put_line(fnd_file.output,'     <ActiveCol>2</ActiveCol>');
fnd_file.put_line(fnd_file.output,'    </Pane>');
fnd_file.put_line(fnd_file.output,'   </Panes>');
fnd_file.put_line(fnd_file.output,'   <ProtectObjects>False</ProtectObjects>');
fnd_file.put_line(fnd_file.output,'   <ProtectScenarios>False</ProtectScenarios>');
fnd_file.put_line(fnd_file.output,'  </WorksheetOptions>');
fnd_file.put_line(fnd_file.output,' </Worksheet>');
fnd_file.put_line(fnd_file.output,' <Worksheet ss:Name="Sheet2">');
fnd_file.put_line(fnd_file.output,'  <Table ss:ExpandedColumnCount="0" ss:ExpandedRowCount="0" x:FullColumns="1"');
fnd_file.put_line(fnd_file.output,'   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="16.5"/>');
fnd_file.put_line(fnd_file.output,'  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">');
fnd_file.put_line(fnd_file.output,'   <ProtectObjects>False</ProtectObjects>');
fnd_file.put_line(fnd_file.output,'   <ProtectScenarios>False</ProtectScenarios>');
fnd_file.put_line(fnd_file.output,'  </WorksheetOptions>');
fnd_file.put_line(fnd_file.output,' </Worksheet>');
fnd_file.put_line(fnd_file.output,' <Worksheet ss:Name="Sheet3">');
fnd_file.put_line(fnd_file.output,'  <Table ss:ExpandedColumnCount="0" ss:ExpandedRowCount="0" x:FullColumns="1"');
fnd_file.put_line(fnd_file.output,'   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="16.5"/>');
fnd_file.put_line(fnd_file.output,'  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">');
fnd_file.put_line(fnd_file.output,'   <ProtectObjects>False</ProtectObjects>');
fnd_file.put_line(fnd_file.output,'   <ProtectScenarios>False</ProtectScenarios>');
fnd_file.put_line(fnd_file.output,'  </WorksheetOptions>');
fnd_file.put_line(fnd_file.output,' </Worksheet>');
fnd_file.put_line(fnd_file.output,'</Workbook>');
end;
end TEST_XML_PKG;
/

[此贴子已经被作者于2005-7-29 0:42:22编辑过]

发表于 2005/7/29 10:19:32 | 显示全部楼层
试一下
发表于 2007/8/29 16:41:12 | 显示全部楼层
楼上的觉得好
可以下去 测试一下
更可以提出好的意见方法...
发表于 2007/8/30 09:28:02 | 显示全部楼层
OUT VIEW 的是這樣;



無法顯示 XML 網頁
無法使用 樣式表檢視 XML 輸入。請更正錯誤,然後按 重新整理按鈕,或者稍後再試一次。


--------------------------------------------------------------------------------

文件的最上層無效。處理資源 'http://test.testserver.com:10015/OA_CGI/FNDWRR.exe?temp_id=1286081452&login=APPLSYSPUB/PUB@PORCLI' 發生錯誤。第...

<?xml version="1.0"?>
-^



EBS 版本是11.5.9  客戶端操作系統是 XP sp2  ,瀏覽器是IE7.0

[ 本帖最后由 yuanlinok 于 2007-8-30 09:30 编辑 ]
发表于 2007/10/11 17:03:59 | 显示全部楼层
我试试看,谢谢万军!
发表于 2007/10/11 21:38:51 | 显示全部楼层
謝謝,最近正好用的,測試下
发表于 2007/10/22 14:44:48 | 显示全部楼层
  hello
发表于 2007/10/22 15:24:05 | 显示全部楼层
研究一下
发表于 2007/10/22 16:15:09 | 显示全部楼层
感谢四海兄,最近正为ERP报表怎么弄成Execel烦恼呢。
发表于 2007/11/14 11:02:38 | 显示全部楼层
谢了,我去试试
发表于 2007/11/15 10:05:06 | 显示全部楼层
这可是好东西啊,收下了,谢谢楼主
发表于 2007/11/15 12:15:12 | 显示全部楼层

support first

:/huaix :/huaix
发表于 2008/5/22 11:58:55 | 显示全部楼层
:/why :/why
发表于 2008/5/23 14:22:41 | 显示全部楼层
N年前的贴子了!

看下
发表于 2008/6/10 10:28:45 | 显示全部楼层
学习一下
发表于 2008/8/5 10:20:09 | 显示全部楼层
好,正在研究中~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 01:12 , Processed in 0.028554 second(s), 17 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表