Oracle 使用PL/SQL写入docx文件
实际上,我正在编写一个用于Oracle数据库审核的PL/SQL包(包含诸如总RAM、操作系统版本、内存比等信息),并且我希望将此审核的输出写入一个docx文件(或任何可以通过Microsoft Office 2007读取和编辑的文件格式)。 我该怎么做 我找到了一种方法,但这并不是我想要的,因为您必须使用带有标记的模板,并将值逐个绑定到这些标记()。此外,我必须在审计之前部署一个包,这并不总是可能的 如果我可以做到这一点,没有外部包(第三方),这将是很酷的Oracle 使用PL/SQL写入docx文件,oracle,plsql,docx,Oracle,Plsql,Docx,实际上,我正在编写一个用于Oracle数据库审核的PL/SQL包(包含诸如总RAM、操作系统版本、内存比等信息),并且我希望将此审核的输出写入一个docx文件(或任何可以通过Microsoft Office 2007读取和编辑的文件格式)。 我该怎么做 我找到了一种方法,但这并不是我想要的,因为您必须使用带有标记的模板,并将值逐个绑定到这些标记()。此外,我必须在审计之前部署一个包,这并不总是可能的 如果我可以做到这一点,没有外部包(第三方),这将是很酷的 谢谢;) 是的,这可以在不使用外部库的
谢谢;) 是的,这可以在不使用外部库的情况下完成。不过我只能给你一个大纲,而不是实际的代码 首先,
.docx
,.xlsx
格式不是实际的文档;它们是压缩文件。可以使用Java存储过程从数据库中删除数据。其次,其中的文件是可读文本格式、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
因为这些都是普通文件,所以您可以使用以下方式编写它们
<>我会认真考虑你输出到<代码>的动机。这并不容易,但是是的;这是可能的
为什么不简单地将信息存储在数据库中,并基于此创建一个报告,您可以通过电子邮件发送给自己呢。你的生活会轻松得多。是的,不使用外部库也可以做到这一点。不过我只能给你一个大纲,而不是实际的代码 首先,
.docx
,.xlsx
格式不是实际的文档;它们是压缩文件。可以使用Java存储过程从数据库中删除数据。其次,其中的文件是可读文本格式、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
因为这些都是普通文件,所以您可以使用以下方式编写它们
<>我会认真考虑你输出到<代码>的动机。这并不容易,但是是的;这是可能的
为什么不简单地将信息存储在数据库中,并基于此创建一个报告,您可以通过电子邮件发送给自己呢。你的生活会轻松得多。你说的很有趣,但我显然无法将样式应用于文本(或者很难同时写入多个XML文件)。我知道用docx写作不是最好的方式,也更容易,但我没有选择。这些工具将被公司的其他人使用,他们需要一个可以用Word 2007打开和编辑的文档。如果你要这样做,我会从另一个方向@Toin3着手。a) Word 2007可以以您想要的方式读取和呈现哪些格式?找到最简单的创建方法并执行该操作。b) 如果您决定使用.docx,那么创建一个,将其拆开并研究。了解如何单独创建每个文件,并逐步将其构建为您想要的文件。编写许多XML文件都可以在同一个过程中完成,因此创建这些文件需要一段时间,但肯定可以完成。是的,你是对的。通过您的方法,我想我最终找到了获得.docx的方法。我将尝试使用PL/SQL过程编写一个HTML文件,并将mimetype更改为docx mimetype。Word 2007将毫无问题地打开它,一旦从Word编辑并保存了文件,它将被转换为真正的docx结构(我尝试过,它似乎可以正常工作)。谢谢你的帮助。@Toin3我确实试过了。将mimetype更改为DOCX不起作用。MS Office出现错误,表示内容已损坏。不过,将其转换为DOC效果很好。您所说的非常有趣,但我显然无法将样式应用于文本(或者很难同时写入多个XML文件中)。我知道用docx写作不是最好的方式,也更容易,但我没有选择。这些工具将被公司的其他人使用,他们需要一个可以用Word 2007打开和编辑的文档。如果你要这样做,我会从另一个方向@Toin3着手。a) Word 2007可以以您想要的方式读取和呈现哪些格式?找到最简单的创建方法并执行该操作。b) 如果您决定使用.docx,那么创建一个,将其拆开并研究。了解如何单独创建每个文件,并逐步将其构建为您想要的文件。编写许多XML文件都可以在同一个过程中完成,因此创建这些文件需要一段时间,但肯定可以完成。是的,你是对的。通过您的方法,我想我最终找到了获得.docx的方法。我将尝试使用PL/SQL过程编写一个HTML文件,并将mimetype更改为docx mimetype。Word 2007将毫无问题地打开它,一旦从Word编辑并保存了文件,它将被转换为真正的docx结构(我尝试过,它似乎可以正常工作)。谢谢你的帮助。@Toin3我确实试过了。将mimetype更改为DOCX不起作用。MS Office出现错误,表示内容已损坏。然而,将其转换为DOC效果很好。