通用导出
概述
通用的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:打印或导出时是否预览页面
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>
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>
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>
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打开修改,设置时就像普通画水晶报表,如下图:
数据行用: {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>
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>
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>
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
模板配置例子:
自定义导出,动态数据源复合列导出
概述
自己定义导出模版和数据源,适用于各种导出,比如对导出格式有要求的,有合并数据的,多网格等复杂导出。
一般所有导出都可通过这种方式实现,也推荐用这种方式。
参数
通用默认参数为可选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.配置属性说明
格式XML数据导出
概述
根据传入的XML格式数据导出Excel,布局已包含在此XML数据中,
麻烦又不灵活,已不推荐使用,可改用自定义导出方式。
参数
//xml:格式数据
//fileName:导出时另存的文件名
//isWebOffice:打印或导出时是否预览页面
function __CommonPrintExcel(xml,fileName,isWebOffice)
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>
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>
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