通用导出

概述

通用的EXCEL导出,直接JS调用,适用于对导出格式不要求的,只是纯粹导出数据而已。

也支持模版文件。

参数

通用默认参数为可选Json格式对象:

​     options: {

​            outFlag: false 

​            , isZero: false

​            , title: ""

​            , modelFileName: ""

​            , fileTitle: ""

​            , hasChooseCols: false

​            , isWebOffice: false

​            , showAllCols: false

​            , showQuery: false

​            , ids: ""

​            , repeatColumn:  0

​            , docType: ""

​            , entity: ""

​            , entity: ""

​            , uniqueNo: ""

​            , hasFile: "0"

​            , exportPageSize: ""

​            , gridXml: null

​            , diag: null

​        }

    //导出Excel 方法1: 通用Grid导出

​        //outFlag:有分组时,0=分组行是在数据上,其他值=在数据前面有个合并列

​        //isZero:如果数据为空时,是否用0替换,注:最好是在构数据源时就要处理好

​        //fileTitle:导出文件另存时的名字

​        //title:导出的EXCEL文件里面的标题

​        //hasChooseCols:导出的时是否选择导出的列(默认为没有),只有导出不使用模板时才有效

​        //isWebOffice:打印或导出时是否预览页面

​        //showAllCols:是否显示所有列(

​        //  showAllCols和hasChooseCols都为true时:显示所有列包括width为0的列

​        //  showAllCols为true,hasChooseCols都为false时:导出所有列

​        //  否则:导出width不为0的列

​        //  )

​    通用网格导出调用方法:wm.c.exportGrid(options)  

​     自定义模板导出调用方法:wm.c.exportDefine(options);除默认参数外,还有以下参数:

​             //otherName:other节点下ExcelList节点标识,modelFileName:模版文件名

​        //isWebOffice:打印或导出时是否预览页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

示例

通用的EXCEL导出,直接在按钮上配置上调用JS事件,系统自动根据页面显示的数据构造出数据源,然后查找是否有对应的模版文件,如果找到模版就根据模版设置的格式导出,如果找不到模版,就直接根据系统设置的固定格式进行导出。

​ 网格页面导出调用,如:

    <Button RuleName="Remark" Name="cmd通用网格导出" Text="通用网格导出" ToolTip="通用网格导出" Type="Button" Image="WebToolBar/16_Excel.gif" DisplayMode="TextAndImage" Script="wm.c.exportGrid()"></Button>


1
2
3

FORM页面导出调用,如:

   <Button RuleName="Remark" Name="cmd通用表单导出" Text="通用表单导出" ToolTip="通用表单导出" Type="Button" Image="WebToolBar/16_Excel.gif" DisplayMode="TextAndImage" Script="wm.c.exportForm()" Target="Form" ></Button>

 


1
2
3
4
5

自定义模板导出如:

 <Button RuleName="Remark" Name="cmd普通自定义模板导出" Text="普通自定义模板" ToolTip="普通自定义模板导出" Type="Button" Image="WebToolBar/16_Excel.gif" DisplayMode="TextAndImage" Script="wm.c.exportDefine({otherName:'Excel1;Excel2;Excel3',modelFileName:'Demo/demo_define1'})"></Button>

1
2

自定义模板导出如,若为自定义导出则必须配置<ExcelList>下的<Excel>结点,以实现自定义导出数据源的配置。

注:

1.判断是否有模版文件,是根据模版文件名来判断,模版文件放在 Business\Template\Excel文件夹下,建议模版文件命名规则: P_实体名_Grid(或者Form)_UniqueNo.xml

2.如P_ExpInstitution_Grid_0.xml, P_ExpInstitution_Form_0.xml。表示对于ExpInstitution 实体下UniqueNo为 0的业务的通用导出,就能找到该模版文件。

模版格式

模版文件可直接用Excel打开修改,设置时就像普通画水晶报表,如下图:

img

数据行用: {PrintFlag的值+字段名} 标识 非数据行用: {#+字段名} 标识 如 配置PrintFlag=”$1”对应的列名称为column1,则配置{$1column1}

自定义配置例子:

<ExcelList>

      <Excel Name="Excel1" PrintFlag="#">

        <DataSource Type="SqlServer">

          <![CDATA[

                         select '标题1' title1,'标题2' title2,'标题3' title3

                         ]]>

        </DataSource>

        <DataSource Type="Oracle">

          <![CDATA[

                         select '标题1' title1,'标题2' title2,'标题3' title3 from dual

                         ]]>

        </DataSource>

      </Excel>

 

      <Excel Name="Excel2" PrintFlag="$2">

        <DataSource Type="SqlServer">

          <![CDATA[

                         select '测试11' column1,'测试12' column2,'测试13' column3,'测试14' column4,'测试15' column5,'测试16' column6

            union

            select '测试21' column1,'测试22' column2,'测试23' column3,'测试24' column4,'测试25' column5,'测试26' column6

            union

            select '测试31' column1,'测试32' column2,'测试33' column3,'测试34' column4,'测试35' column5,'测试36' column6

                         ]]>

        </DataSource>

        <DataSource Type="Oracle">

          <![CDATA[

                         select '测试11' column1,'测试12' column2,'测试13' column3,'测试14' column4,'测试15' column5,'测试16' column6

            union

            select '测试21' column1,'测试22' column2,'测试23' column3,'测试24' column4,'测试25' column5,'测试26' column6

            union

            select '测试31' column1,'测试32' column2,'测试33' column3,'测试34' column4,'测试35' column5,'测试36' column6

                         ]]>

        </DataSource>

      </Excel>

 

      <Excel Name="Excel3" PrintFlag="$3" IsFromGrid="true">

        <!--设网格数据列名称 InNo,SysUserId,InTime-->

      </Excel>

    </ExcelList>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

通用导出(Grid-DataSource)

概述

Grid页面专用,和通用导出一样,唯一差别只是数据源是来自配置文件里Grid节点下的DataSource节点所配置的数据源。

参数

//fileName:导出文件另存时的名字

//title:导出的EXCEL文件里面的标题

//isWebOffice:打印或导出时是否预览页面

调用方法:wm.c.exportDefine(options)

示例

数据源来自网格自定义模板导出:

<Button RuleName="Remark" Name="cmd数据源来自网格自定义模板导出" Text="数据源来自网格自定义模板" ToolTip="数据源来自网格自定义模板导出" Type="Button" Image="WebToolBar/16_Excel.gif" DisplayMode="TextAndImage" Script="wm.c.exportDefine({otherName:'Excel1;Excel3',modelFileName:'Demo/demo_define2'})"></Button>


1
2
3

Xml配置例子:

<ExcelList>

      <Excel Name="Excel1" PrintFlag="#">

        <DataSource Type="SqlServer">

          <![CDATA[

                         select '标题1' title1,'标题2' title2,'标题3' title3

                         ]]>

        </DataSource>

        <DataSource Type="Oracle">

          <![CDATA[

                         select '标题1' title1,'标题2' title2,'标题3' title3 from dual

                         ]]>

        </DataSource>

      </Excel>

       

      <Excel Name="Excel3" PrintFlag="$3" IsFromGrid="true">

      <!--设网格数据列名称 InNo,SysUserId,InTime-->

</Excel>

</ExcelList>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

模板配置例子:

img


自定义导出,动态数据源复合列导出

概述

自己定义导出模版和数据源,适用于各种导出,比如对导出格式有要求的,有合并数据的,多网格等复杂导出。

一般所有导出都可通过这种方式实现,也推荐用这种方式。

参数

通用默认参数为可选Json格式对象:

​ options: {

​ outFlag: false

​ , isZero: false

​ , title: ""

​ , modelFileName: ""

​ , fileTitle: ""

​ , hasChooseCols: false

​ , isWebOffice: false

​ , showAllCols: false

​ , showQuery: false

​ , ids: ""

​ , repeatColumn: 0

​ , docType: ""

​ , entity: ""

​ , entity: ""

​ , uniqueNo: ""

​ , hasFile: "0"

​ , exportPageSize: ""

​ , gridXml: null

​ , diag: null

​ }

//导出Excel 方法1: 通用Grid导出

​ //outFlag:有分组时,0=分组行是在数据上,其他值=在数据前面有个合并列

​ //isZero:如果数据为空时,是否用0替换,注:最好是在构数据源时就要处理好

​ //fileTitle:导出文件另存时的名字

​ //title:导出的EXCEL文件里面的标题

​ //hasChooseCols:导出的时是否选择导出的列(默认为没有),只有导出不使用模板时才有效

​ //isWebOffice:打印或导出时是否预览页面

​ //showAllCols:是否显示所有列(

​ // showAllCols和hasChooseCols都为true时:显示所有列包括width为0的列

​ // showAllCols为true,hasChooseCols都为false时:导出所有列

​ // 否则:导出width不为0的列

​ // )

​ 自定义模板导出调用方法:wm.c.exportDefine(options);除默认参数外,还有以下参数:

​ //otherName:other节点下ExcelList节点标识,modelFileName:模版文件名

​ //isWebOffice:打印或导出时是否预览页面

注:参数都是必传的 isWebOffice 可以不用传,默认为false

示例

数据源是在配置文件里的Other节点下配置的,模版文件也是放在Business\Template\Excel文件夹下,

模版命名可随便定义,不过推荐类似 P_SysUser_Grid_Dyna.xml 这样的命名,比较好查找。

1.配置属性说明

img


格式XML数据导出

概述

根据传入的XML格式数据导出Excel,布局已包含在此XML数据中,

麻烦又不灵活,已不推荐使用,可改用自定义导出方式。

参数

//xml:格式数据

//fileName:导出时另存的文件名

//isWebOffice:打印或导出时是否预览页面

function __CommonPrintExcel(xml,fileName,isWebOffice)
1
2
3
4
5
6
7

示例

格式:

ColumnsWidth:列宽度,按顺序分号隔开

IsWarpText:各行是否自动换行

Row里数据列是用 @##@ 隔开

Row里的IsBold=’ture’ 表示这行数据要加粗

例如:

<ToExcelList>

    <Excel Title=''>

         <Tab Title='工艺标准维护'>

            <FormList></FormList>

             <GridList>

                <Grid Name='导出信息' IsShowTitle='False' EColSpan='1' ERowSpan='1' ColCount='18' FontSize='10' IsWarpText='true' ColumnsWidth='15;15;15;15;'>

                    <Row>工艺标准主表@##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@</Row>

                    <Row IsBold='true'> @##@牌号@##@在制品名称@##@工艺标准类型@##@生产区域@##@计划执行时间@##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@</Row>

                    <Row> @##@石狮(软吉庆,特,厦门)@##@ @##@制丝工艺技术标准@##@厦烟制丝二区@##@2010-06-21@##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@</Row>

                    <Row> @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@</Row>

                    <Row IsBold='true'> @##@计划结束时间@##@计划执行批数@##@标准版本号@##@启用状态@##@启用批次号@##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@</Row>

                    <Row> @##@2010-06-23@##@ @##@20100617-GY@##@已启用@##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@ @##@</Row>

                </Grid>

            </GridList>

             <Position RowStartIndex='' EColCount='1'>

                <P>导出信息</P>

            </Position>

         </Tab>

    </Excel>

</ToExcelList>


 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<ToExcelList>

    <Excel Title=''>

        <Tab Title='基本信息'>

            <FormList>


                <Form Name="调查基本信息" EColSpan='1' ERowSpan='1' ColCount='2'>


                    <Column Name='序号' Value="1" Colspan='1' RowSpan='1'></Column>


                    <Column Name='调查区域' Value="福建龙岩永定县" Colspan='1' RowSpan='1'></Column>


                    <Column Name='调查表编号' Value="2010-03-3105" Colspan='1' RowSpan='1'></Column>


                    <Column Name='调查类型' Value="定期" Colspan='1' RowSpan='1'></Column>


                    <Column Name='调查期数' Value="2010-03-08" Colspan='1' RowSpan='1'></Column>

                    <Column Name='调查方式' Value="考察" Colspan='1' RowSpan='1'></Column>


                    <Column Name='调查部门' Value="" Colspan='2' RowSpan='1'></Column>


                    <Column Name='调查事务名称' Value="XX" Colspan='1' RowSpan='1'></Column>


                    <Column Name='调查目的' Value="调查移栽情况" Colspan='2' RowSpan='1'></Column>


                    <Column Name='调查参与人' Value="陈昆焱," Colspan='2' RowSpan='1'></Column>


                    <Column Name='开始日期' Value="2010-03-25" Colspan='1' RowSpan='1'></Column>


                    <Column Name='结束日期' Value="2010-03-25" Colspan='1' RowSpan='1'></Column>


                    <Column Name='备注' Value="" Colspan='2' RowSpan='1'></Column>


                </Form>


                <Form Name="土壤基本信息" EColSpan='1' ERowSpan='1' ColCount='2'></Form>


                <Form Name="气象基本信息" EColSpan='1' ERowSpan='1' ColCount='2'></Form>


                <Form Name="后期至烘烤期" EColSpan='1' ERowSpan='1' ColCount='2'></Form>


            </FormList>


            <GridList>

                <Grid Name="基本信息" EColSpan='1' ERowSpan='1' ColCount='13'>


                    <Row>

                        序号@##@调查区域@##@调查表编号@##@调查类型@##@调查期数@##@调查方式@##@调查部门@##@调查事务名称@##@调查目的@##@调查参与人@##@开始日期@##@结束日期@##@备注

                    </Row>

                    <Row>

                        1@##@福建龙岩永定县@##@2010-03-3105@##@定期@##@2010-03-08@##@考察@##@@##@XX@##@调查移栽情况@##@陈昆焱,@##@2010-03-25@##@2010-03-25@##@

                    </Row>

                </Grid>


            </GridList>


            <Position RowStartIndex='' EColCount='1'>


                <P>调查基本信息@##@土壤基本信息@##@气象基本信息@##@整地及育苗期@##@移栽至团棵期@##@旺长至打顶期@##@后期至烘烤期</P>

            </Position>


        </Tab>

    </Excel>

</ToExcelList>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103