zoukankan      html  css  js  c++  java
  • 用XML编写EXCEL文件,XML的写法注意事项,可以C#+xslt导出Excel

    1,文件信息:

    <?xml version="1.0"?>
    <?mso-application progid="Excel.Sheet"?>

    2,正文部分应包含在<Workbook></Workbook>之间:

      <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
         xmlns:v="urn:schemas-microsoft-com:vml"
         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">
    ……………………
    </Workbook>

    3, 文档属性选项应包含在Workbook标识中,并处于Worksheet范围之外:

          <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
            <Author>DuDu</Author>
            <LastAuthor>DuDu</LastAuthor>
            <LastPrinted>2012-08-31T06:18:54Z</LastPrinted>
            <Created>2012-08-31T06:21:45Z</Created> 
            <LastSaved>2012-08-31T06:18:51Z</LastSaved>
            <Version>14.00</Version>
          </DocumentProperties>

    4,ExcelWorkbook 记录了一些环境变量:

          <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
            <WindowHeight>7830</WindowHeight>
            <WindowWidth>19395</WindowWidth>
            <WindowTopX>600</WindowTopX>
            <WindowTopY>90</WindowTopY>
            <ProtectStructure>False</ProtectStructure>
            <ProtectWindows>False</ProtectWindows>
          </ExcelWorkbook>


    5,在Worksheet之外可以定义多个Style,所有Style应位于<Styles></Styles>之间,这些Style在书写各单元格的时候会用到:

          <Styles>
            <Style ss:ID="Default" ss:Name="Normal">
              <Alignment ss:Vertical="Center"/>
              <Borders/>
              <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
              <Interior/>
              <NumberFormat/>
              <Protection/>
            </Style>
            <Style ss:ID="m83836928">
              <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
              <Borders>
                <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"
                 ss:Color="#000000"/>
                <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"
                 ss:Color="#000000"/>
                <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
                 ss:Color="#000000"/>
                <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
                 ss:Color="#000000"/>
              </Borders>
              <Font ss:FontName="宋体" x:CharSet="134" ss:Color="#000000"/>
            </Style>
          </Styles>

    6,Worksheet标识之间定义了一个工作表,一个文件可以定义多个Worksheet:

    <Worksheet>
            <xsl:attribute name="ss:Name">出库单<xsl:value-of select="Delivery/erpOutNo"/></xsl:attribute>
            <Table ss:ExpandedColumnCount="8" x:FullColumns="1"
             x:FullRows="1" ss:StyleID="s15" ss:DefaultColumnWidth="54"
             ss:DefaultRowHeight="13.5">
    …………………………
    </Worksheet>

    7,Worksheet之内有个Tables,定义了表的内容:

    <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1"   x:FullRows="1">
    
    ……
    
    </Table>

    注意:注意每行的列数和总的行数应该和<Table>中定义的一致,不然Excel导出后会报错“文件损坏” 


    8,每一个<Row></Row>之间定义的就是表格一行的内容,每个<Cell></Cell>则对应一个单元格,注意每行的列数和总的行数应该和<Table>中定义的一致:

       <Row ss:AutoFitHeight="0" ss:Height="63.75">
        <Cell ss:StyleID="s63"><Data ss:Type="String">A1</Data></Cell>
        <Cell ss:StyleID="s63"><Data ss:Type="String">B1</Data></Cell>
       </Row>

    10,Table定义完之后,还可以用<>定义一些设置:

            <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
              <PageSetup>
                <Header x:Margin="0.19"/>
                <Footer x:Margin="0.51"/>
                <PageMargins x:Bottom="0.51" x:Left="0.17" x:Right="0.17"
                 x:Top="0.28000000000000003"/>
              </PageSetup>
              <Print>
                <ValidPrinterInfo/>
                <PaperSizeIndex>256</PaperSizeIndex>
                <VerticalResolution>0</VerticalResolution>
              </Print>
              <Selected/>
              <DoNotDisplayGridlines/>
              <Panes>
                <Pane>
                  <Number>3</Number>
                  <ActiveRow>8</ActiveRow>
                  <ActiveCol>2</ActiveCol>
                </Pane>
              </Panes>
              <ProtectObjects>False</ProtectObjects>
              <ProtectScenarios>False</ProtectScenarios>
            </WorksheetOptions>
    作者:dupeng0811
    版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
    留言:同时 , 如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    Mvc+三层(批量添加、删除、修改)
    js中判断复选款是否选中
    EF的优缺点
    Git tricks: Unstaging files
    Using Git Submodules
    English Learning
    wix xslt for adding node
    The breakpoint will not currently be hit. No symbols have been loaded for this document."
    Use XSLT in wix
    mfc110ud.dll not found
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/2666258.html
Copyright © 2011-2022 走看看