2014-11-21 24 views
0

我从我写的iOS应用程序内手动创建Excel文件。它只是吐出一张附有Excel文件扩展名的XML表格,该表格在Excel中打开时没有问题。需要在手动创建的Excel文件中手动设置分页符

问题是该文件有5列。无论出于何种原因 - Excel 总是将分页符放在第4列之后。

我试图让我的最终用户的过程尽可能简单 - 所以他们只需按下按钮,然后打印此应用创建的工作表 - 但是截至目前他们必须先进入分页预览并调整分页符。我想通过手动删除分页符或将其移至内容结尾(第5列)来消除该分页符。

这些数据绝不是“太宽”,也不需要分页,这就是为什么我为什么要创造它们而迷失了!

我的XML文件看起来像这个曾经创造:

<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:html="http://www.w3.org/TR/REC-html40"> 
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> 
    <Author>Me</Author> 
    <LastAuthor>template</LastAuthor> 
    <Created>2014-11-21T16:11:02Z</Created> 
    <Version>14.00</Version> 
</DocumentProperties> 
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> 
    <AllowPNG/> 
</OfficeDocumentSettings> 
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> 
    <WindowHeight>9375</WindowHeight> 
    <WindowWidth>9705</WindowWidth> 
    <WindowTopX>270</WindowTopX> 
    <WindowTopY>615</WindowTopY> 
    <ProtectStructure>False</ProtectStructure> 
    <ProtectWindows>False</ProtectWindows> 
</ExcelWorkbook> 
<Styles> 
    <Style ss:ID="Default" ss:Name="Normal"> 
    <Alignment ss:Vertical="Bottom"/> 
    <Borders/> 
    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/> 
    <Interior/> 
    <NumberFormat/> 
    <Protection/> 
    </Style> 
    <Style ss:ID="s62"> 
    <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/> 
    <Borders> 
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> 
    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> 
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> 
    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> 
    </Borders> 
    <Font ss:FontName="Arial" ss:Bold="1"/> 
    <Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/> 
    <NumberFormat/> 
    <Protection/> 
    </Style> 
    <Style ss:ID="s63"> 
    <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/> 
    <Borders> 
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/> 
    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/> 
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/> 
    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/> 
    </Borders> 
    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/> 
    <Interior/> 
    <NumberFormat/> 
    <Protection/> 
    </Style> 
    <Style ss:ID="s64"> 
    <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/> 
    <Borders/> 
    <Font ss:FontName="Arial" ss:Bold="1"/> 
    <Interior/> 
    <NumberFormat/> 
    <Protection/> 
    </Style> 
    <Style ss:ID="s65"> 
    <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/> 
    <Borders/> 
    <Font ss:FontName="Arial" ss:Bold="1"/> 
    <Interior/> 
    <NumberFormat ss:Format="&quot;$&quot;#,##0.00"/> 
    <Protection/> 
    </Style> 
    <Style ss:ID="s66"> 
    <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/> 
    <Borders/> 
    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/> 
    <Interior/> 
    <NumberFormat/> 
    <Protection/> 
    </Style> 
</Styles> 
<Worksheet ss:Name="54Mileage"> 
    <Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="52" x:FullColumns="1" 
    x:FullRows="1" ss:DefaultColumnWidth="117" ss:DefaultRowHeight="15"> 
    <Column ss:Width="99.75"/> 
    <Column ss:Width="95.25" ss:Span="3"/> 
    <Row> 
    <Cell><Data ss:Type="String">Person Making Claim:</Data></Cell> 
    <Cell><Data ss:Type="String">XXXXXX XXXXXXXXX</Data></Cell> 
    <Cell><Data ss:Type="String"></Data></Cell> 
    <Cell><Data ss:Type="String">Signature: </Data></Cell> 
    <Cell><Data ss:Type="String"></Data></Cell> 
    </Row> 
    <Row ss:Index="3"> 
    <Cell><Data ss:Type="String">Month/Year:</Data></Cell> 
    <Cell><Data ss:Type="String">November 2014</Data></Cell> 
    <Cell><Data ss:Type="String"></Data></Cell> 
    <Cell><Data ss:Type="String">Account Code:</Data></Cell> 
    </Row> 
    <Row ss:Index="5"> 
    <Cell><Data ss:Type="String">School:</Data></Cell> 
    <Cell><Data ss:Type="String">XXXXXX</Data></Cell> 
    <Cell><Data ss:Type="String"></Data></Cell> 
    <Cell><Data ss:Type="String">Home Address:</Data></Cell> 
    <Cell><Data ss:Type="String">XXXXXXXXXX</Data></Cell> 
    </Row> 
    <Row ss:Index="7"> 
    <Cell ss:StyleID="s62"><Data ss:Type="String">Date</Data></Cell> 
    <Cell ss:StyleID="s62"><Data ss:Type="String">From</Data></Cell> 
    <Cell ss:StyleID="s62"><Data ss:Type="String">To</Data></Cell> 
    <Cell ss:StyleID="s62"><Data ss:Type="String">Number Of Miles</Data></Cell> 
    <Cell ss:StyleID="s62"><Data ss:Type="String">Reason For Trip</Data></Cell> 
    </Row> 
    <Row> 
    <Cell ss:StyleID="s63"><Data ss:Type="String">11/03/2014</Data></Cell> 
    <Cell ss:StyleID="s63"><Data ss:Type="String">Hanover</Data></Cell> 
    <Cell ss:StyleID="s63"><Data ss:Type="String">Einstein</Data></Cell> 
    <Cell ss:StyleID="s63"><Data ss:Type="Number">2.1</Data></Cell> 
    </Row> 
    <Row> 
    <Cell ss:StyleID="s63"><Data ss:Type="String">11/20/2014</Data></Cell> 
    <Cell ss:StyleID="s63"><Data ss:Type="String">Hale</Data></Cell> 
    <Cell ss:StyleID="s63"><Data ss:Type="String">Fox</Data></Cell> 
    <Cell ss:StyleID="s63"><Data ss:Type="Number">2</Data></Cell> 
    </Row> 
    <Row ss:Index="50"> 
    <Cell ss:StyleID="s64"><Data ss:Type="String">Total Miles:</Data></Cell> 
    <Cell ss:StyleID="s64" ss:Formula="=SUM(R[-42]C[2]:R[-2]C[2])"><Data 
     ss:Type="Number">112.90000000000002</Data></Cell> 
    <Cell ss:StyleID="s64"><Data ss:Type="String">@0.56</Data></Cell> 
    <Cell ss:StyleID="s65" ss:Formula="=RC[-2]*0.56"><Data ss:Type="Number">63.224000000000018</Data></Cell> 
    </Row> 
    <Row ss:Index="52"> 
    <Cell ss:StyleID="s66"><Data ss:Type="String">Approved By (signature):</Data></Cell> 
    <Cell ss:StyleID="s66"><Data ss:Type="String"></Data></Cell> 
    <Cell ss:StyleID="s66"><Data ss:Type="String"></Data></Cell> 
    <Cell ss:StyleID="s66"><Data ss:Type="String">Date:</Data></Cell> 
    </Row> 
    </Table> 
    <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> 
    <Print> 
    <ValidPrinterInfo/> 
    <HorizontalResolution>600</HorizontalResolution> 
    <VerticalResolution>600</VerticalResolution> 
    </Print> 
    <ShowPageBreakZoom/> 
    <Selected/> 
    <ProtectObjects>False</ProtectObjects> 
    <ProtectScenarios>False</ProtectScenarios> 
    </WorksheetOptions> 
</Worksheet> 
</Workbook> 

有没有一个地方,我可以在一个线路XML的手动输入以编程方式调整分页符?或者这是我的用户总是必须采取的一步?

回答

1

我发现我不得不指定打印设置为了得到这个来手动设置分页符 - pagebreak只是使用一些特定于Excel的xml设置的。

下面是我如何能够手动设置分页符:

<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> 
    <Print> 
    <ValidPrinterInfo/> 
    <HorizontalResolution>600</HorizontalResolution> 
    <VerticalResolution>600</VerticalResolution> 
    </Print> 
    </WorksheetOptions> 
    <PageBreaks xmlns="urn:schemas-microsoft-com:office:excel"> 
    <ColBreaks> 
    <ColBreak> 
    <Column>5</Column> 
    </ColBreak> 
    </ColBreaks> 
    </PageBreaks> 

没有的“工作表选项”,水平和垂直分辨率的第一部分 - 在pagebreaks不会采取。那些必须存在才能手动设置分页符。

1

rowBreaks = horizo​​ntal pagebreak; colBreaks =垂直分页符

BRK ID = 1表示分页符在从this article两者行2

<rowBreaks count="1" manualBreakCount="1"> 
    <brk id="1" max="16383" man="1" /> 
</rowBreaks> 
<colBreaks count="1" manualBreakCount="1"> 
    <brk id="1" max="1048575" man="1" /> 
</colBreaks> 

插入。

+0

这正是我所期待的。谢谢! – Hanny 2014-11-22 13:09:55

+0

好吧,我有机会实现这一点 - 它没有完全按照它应有的方式工作。看起来Excel的做法略有不同 - 我在下面列出了我的答案,因为我必须在Excel中手动设置分页符,将其保存为XML,然后返回并找出将其保留在那里所需的内容。 – Hanny 2014-11-24 14:14:40

+1

感谢您的反馈。很高兴你排序。 – barryleajo 2014-11-24 15:07:40