簡體   English   中英

使用docx4j(或其他任何api)將excel附加到.docx

[英]attaching excel to .docx using docx4j (or any other api)

目前,我正在從事一個需要自動生成文檔的項目。 到目前為止,我已成功使用docx4j在.docx上用用戶輸入的字段替換了占位符,並在占位符上添加了.png圖像。 現在,我需要在.docx上的特定占位符上附加一個excel工作表。 請建議我一些技巧來做同樣的事情。

謝謝。

您應該將xlsx添加為EmbeddedPackagePart

主要文檔部分需要使用類似於以下內容的XML指向它:

            <w:p>
                <w:r>
                    <w:object w:dxaOrig="23793" w:dyaOrig="13287">
                        <v:shapetype stroked="f" filled="f" o:spt="75.0" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" coordsize="21600,21600" id="_x0000_t75">
                            <v:stroke joinstyle="miter"/>
                            <v:formulas>
                                <v:f eqn="if lineDrawn pixelLineWidth 0"/>
                                <v:f eqn="sum @0 1 0"/>
                                <v:f eqn="sum 0 0 @1"/>
                                <v:f eqn="prod @2 1 2"/>
                                <v:f eqn="prod @3 21600 pixelWidth"/>
                                <v:f eqn="prod @3 21600 pixelHeight"/>
                                <v:f eqn="sum @0 0 1"/>
                                <v:f eqn="prod @6 1 2"/>
                                <v:f eqn="prod @7 21600 pixelWidth"/>
                                <v:f eqn="sum @8 21600 0"/>
                                <v:f eqn="prod @7 21600 pixelHeight"/>
                                <v:f eqn="sum @10 21600 0"/>
                            </v:formulas>
                            <v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"/>
                            <o:lock aspectratio="t" v:ext="edit"/>
                        </v:shapetype>
                        <v:shape type="#_x0000_t75" style="width:1189.5pt;height:664.5pt" id="_x0000_i1025" o:ole="">
                            <v:imagedata o:title="" r:id="rId5"/>
                        </v:shape>
                        <o:OLEObject Type="Embed" ProgID="Excel.Sheet.12" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1479233503" r:id="rId6"/>
                    </w:object>
                </w:r>
            </w:p>

注意2個rel ids; 在此示例中,rId6指向“嵌入”部分,而rId5指向要顯示在文檔表面上的圖像(您需要自己創建)。

您可以編寫代碼自己生成上述代碼。 或者,商業docx企業版將為您完成此任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM