• 用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
    版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
    留言:同时 , 如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    VS创建C工程
    信用卡诈骗分析
    R语言parse函数与eval函数的字符串转命令行及执行操作
    用R语言提取数据框中日期对应年份(列表转矩阵)
    R语言模型选择之精度准则与最大值法问题
    对数据集做标准化处理的几种方法——基于R语言
    可视化缺失值的办法——R语言
    模型验证方法——R语言
    R语言 绘图——条形图可以将堆积条形图与百分比堆积条形图配合使用
    R语言抽样的问题
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/2666258.html
Copyright © 2020-2023  润新知