我实际上正在编写一个用于Oracle数据库审计目的的PL / SQL程序包(包括总RAM,操作系统版本,内存比率等信息),我想在docx文件中编写此审计的输出(或Microsoft Office 2007可读和可编辑的任何文件格式。 我怎么能这样做?
我找到了一种方法,但这并不是我想要的,因为你必须使用带有标签的模板并将值一个接一个地绑定到这些标签(http://ora-00001.blogspot.fr/2011/02/working-with-office-2007-ooxml-files.html)。此外,我必须在审核之前部署一个包,并不总是可行。
如果我能在没有外部包装(第三方)的情况下做到这一点,那就太酷了!
谢谢;)
答案 0 :(得分:3)
是的,可以不使用外部库。我只能给你一个大纲,而不是实际的代码。
首先,.docx
,.xlsx
格式不是实际文件;他们是zip文件。使用Java存储过程可以从数据库中create a zip file。其次,其中的文件是可读文本格式,XML等。
如果我们看一下我创建的那个,你可以看到我的意思。
[19:28:27]\\ELZAR\h:\ unzip -l blah.docx
Archive: blah.docx
Length Date Time Name
------ ---- ---- ----
2387 01-01-80 00:00 [Content_Types].xml
590 01-01-80 00:00 _rels/.rels
1880 01-01-80 00:00 word/_rels/document.xml.rels
107400 01-01-80 00:00 word/document.xml
2460 01-01-80 00:00 word/footer2.xml
1428 01-01-80 00:00 word/endnotes.xml
1434 01-01-80 00:00 word/footnotes.xml
2624 01-01-80 00:00 word/header1.xml
289 01-01-80 00:00 word/_rels/header1.xml.rels
2497 01-01-80 00:00 word/footer1.xml
2765888 01-01-80 00:00 word/media/image1.emf
7076 01-01-80 00:00 word/theme/theme1.xml
4600 01-01-80 00:00 word/settings.xml
363 01-01-80 00:00 word/_rels/settings.xml.rels
25836 01-01-80 00:00 word/styles.xml
341 01-01-80 00:00 customXml/itemProps1.xml
54486 01-01-80 00:00 word/numbering.xml
296 01-01-80 00:00 customXml/_rels/item1.xml.rels
218 01-01-80 00:00 customXml/item1.xml
808 01-01-80 00:00 docProps/core.xml
2786 01-01-80 00:00 word/fontTable.xml
2826 01-01-80 00:00 word/webSettings.xml
26589 01-01-80 00:00 word/stylesWithEffects.xml
1025 01-01-80 00:00 docProps/app.xml
------ -------
3016127 24 files
由于这些都是普通文件,您可以使用UTL_FILE等方式编写所有文件。
我会认真考虑你输出到.docx
的动机;这不容易,但是是的;这是可能的。
为什么不简单地将信息存储在数据库中并根据该信息创建报告,例如,您可以通过电子邮件发送给自己。你的生活会轻松得多。