Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibizlab-generator
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibizlab-generator
提交
c87ae67c
提交
c87ae67c
编写于
2月 15, 2022
作者:
Mosher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add:添加导出工具
上级
79845cf7
变更
5
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
275 行增加
和
2 行删除
+275
-2
package.json
...ore/src/main/resources/templ/r7/app_{{apps}}/package.json
+3
-1
export.ts
...ces/templ/r7/app_{{apps}}/src/core/utils/export/export.ts
+49
-0
Export2Excel.js
...apps}}/src/core/utils/export/export2Excel/Export2Excel.js
+220
-0
index.ts
...rces/templ/r7/app_{{apps}}/src/core/utils/export/index.ts
+1
-0
index.ts
...n/resources/templ/r7/app_{{apps}}/src/core/utils/index.ts
+2
-1
未找到文件。
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/package.json
浏览文件 @
c87ae67c
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
"dayjs"
:
"^1.10.7"
,
"dayjs"
:
"^1.10.7"
,
"element-plus"
:
"^1.2.0-beta.6"
,
"element-plus"
:
"^1.2.0-beta.6"
,
"font-awesome"
:
"^4.7.0"
,
"font-awesome"
:
"^4.7.0"
,
"file-saver"
:
"^2.0.5"
,
"qs"
:
"^6.10.2"
,
"qs"
:
"^6.10.2"
,
"qx-util"
:
"^0.0.10"
,
"qx-util"
:
"^0.0.10"
,
"ramda"
:
"^0.27.1"
,
"ramda"
:
"^0.27.1"
,
...
@@ -26,7 +27,8 @@
...
@@ -26,7 +27,8 @@
"vue-global-api"
:
"^0.4.1"
,
"vue-global-api"
:
"^0.4.1"
,
"vue-router"
:
"^4.0.12"
,
"vue-router"
:
"^4.0.12"
,
"async-validator"
:
"^3.3.0"
,
"async-validator"
:
"^3.3.0"
,
"moment"
:
"2.24.0"
"moment"
:
"2.24.0"
,
"xlsx"
:
"^0.16.9"
},
},
"devDependencies"
:
{
"devDependencies"
:
{
"@types/node"
:
"^16.11.12"
,
"@types/node"
:
"^16.11.12"
,
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/utils/export/export.ts
0 → 100644
浏览文件 @
c87ae67c
/**
* ExportExcel 对象
* 调用 getInstance() 获取实例
*
* @class ExportExcel
*/
export
class
ExportExcel
{
/**
* 获取 ExportExcel 单例对象
*
* @static
* @returns {ExportExcel}
* @memberof ExportExcel
*/
public
static
getInstance
():
ExportExcel
{
if
(
!
ExportExcel
.
ExportExcel
)
{
ExportExcel
.
ExportExcel
=
new
ExportExcel
();
}
return
this
.
ExportExcel
;
}
/**
* 私有化构造器,只能通过getInstance获取
* @memberof ExportExcel
*/
private
constructor
()
{
}
/**
* 单例变量声明
*
* @private
* @static
* @type {ExportExcel}
* @memberof ExportExcel
*/
private
static
ExportExcel
:
ExportExcel
;
/**
* 获取导出excel核心包
*
* @memberof ExportExcel
*/
public
async
exportExcel
(){
const
excel
:
any
=
await
import
(
"./export2Excel/Export2Excel"
as
any
);
return
excel
;
}
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/utils/export/export2Excel/Export2Excel.js
0 → 100644
浏览文件 @
c87ae67c
/* eslint-disable */
import
{
saveAs
}
from
'file-saver'
import
XLSX
from
'xlsx'
function
generateArray
(
table
)
{
var
out
=
[];
var
rows
=
table
.
querySelectorAll
(
'tr'
);
var
ranges
=
[];
for
(
var
R
=
0
;
R
<
rows
.
length
;
++
R
)
{
var
outRow
=
[];
var
row
=
rows
[
R
];
var
columns
=
row
.
querySelectorAll
(
'td'
);
for
(
var
C
=
0
;
C
<
columns
.
length
;
++
C
)
{
var
cell
=
columns
[
C
];
var
colspan
=
cell
.
getAttribute
(
'colspan'
);
var
rowspan
=
cell
.
getAttribute
(
'rowspan'
);
var
cellValue
=
cell
.
innerText
;
if
(
cellValue
!==
""
&&
cellValue
==
+
cellValue
)
cellValue
=
+
cellValue
;
//Skip ranges
ranges
.
forEach
(
function
(
range
)
{
if
(
R
>=
range
.
s
.
r
&&
R
<=
range
.
e
.
r
&&
outRow
.
length
>=
range
.
s
.
c
&&
outRow
.
length
<=
range
.
e
.
c
)
{
for
(
var
i
=
0
;
i
<=
range
.
e
.
c
-
range
.
s
.
c
;
++
i
)
outRow
.
push
(
null
);
}
});
//Handle Row Span
if
(
rowspan
||
colspan
)
{
rowspan
=
rowspan
||
1
;
colspan
=
colspan
||
1
;
ranges
.
push
({
s
:
{
r
:
R
,
c
:
outRow
.
length
},
e
:
{
r
:
R
+
rowspan
-
1
,
c
:
outRow
.
length
+
colspan
-
1
}
});
};
//Handle Value
outRow
.
push
(
cellValue
!==
""
?
cellValue
:
null
);
//Handle Colspan
if
(
colspan
)
for
(
var
k
=
0
;
k
<
colspan
-
1
;
++
k
)
outRow
.
push
(
null
);
}
out
.
push
(
outRow
);
}
return
[
out
,
ranges
];
};
function
datenum
(
v
,
date1904
)
{
if
(
date1904
)
v
+=
1462
;
var
epoch
=
Date
.
parse
(
v
);
return
(
epoch
-
new
Date
(
Date
.
UTC
(
1899
,
11
,
30
)))
/
(
24
*
60
*
60
*
1000
);
}
function
sheet_from_array_of_arrays
(
data
,
opts
)
{
var
ws
=
{};
var
range
=
{
s
:
{
c
:
10000000
,
r
:
10000000
},
e
:
{
c
:
0
,
r
:
0
}
};
for
(
var
R
=
0
;
R
!=
data
.
length
;
++
R
)
{
for
(
var
C
=
0
;
C
!=
data
[
R
].
length
;
++
C
)
{
if
(
range
.
s
.
r
>
R
)
range
.
s
.
r
=
R
;
if
(
range
.
s
.
c
>
C
)
range
.
s
.
c
=
C
;
if
(
range
.
e
.
r
<
R
)
range
.
e
.
r
=
R
;
if
(
range
.
e
.
c
<
C
)
range
.
e
.
c
=
C
;
var
cell
=
{
v
:
data
[
R
][
C
]
};
if
(
cell
.
v
==
null
)
continue
;
var
cell_ref
=
XLSX
.
utils
.
encode_cell
({
c
:
C
,
r
:
R
});
if
(
typeof
cell
.
v
===
'number'
)
cell
.
t
=
'n'
;
else
if
(
typeof
cell
.
v
===
'boolean'
)
cell
.
t
=
'b'
;
else
if
(
cell
.
v
instanceof
Date
)
{
cell
.
t
=
'n'
;
cell
.
z
=
XLSX
.
SSF
.
_table
[
14
];
cell
.
v
=
datenum
(
cell
.
v
);
}
else
cell
.
t
=
's'
;
ws
[
cell_ref
]
=
cell
;
}
}
if
(
range
.
s
.
c
<
10000000
)
ws
[
'!ref'
]
=
XLSX
.
utils
.
encode_range
(
range
);
return
ws
;
}
function
Workbook
()
{
if
(
!
(
this
instanceof
Workbook
))
return
new
Workbook
();
this
.
SheetNames
=
[];
this
.
Sheets
=
{};
}
function
s2ab
(
s
)
{
var
buf
=
new
ArrayBuffer
(
s
.
length
);
var
view
=
new
Uint8Array
(
buf
);
for
(
var
i
=
0
;
i
!=
s
.
length
;
++
i
)
view
[
i
]
=
s
.
charCodeAt
(
i
)
&
0xFF
;
return
buf
;
}
export
function
export_table_to_excel
(
id
)
{
var
theTable
=
document
.
getElementById
(
id
);
var
oo
=
generateArray
(
theTable
);
var
ranges
=
oo
[
1
];
/* original data */
var
data
=
oo
[
0
];
var
ws_name
=
"SheetJS"
;
var
wb
=
new
Workbook
(),
ws
=
sheet_from_array_of_arrays
(
data
);
/* add ranges to worksheet */
// ws['!cols'] = ['apple', 'banan'];
ws
[
'!merges'
]
=
ranges
;
/* add worksheet to workbook */
wb
.
SheetNames
.
push
(
ws_name
);
wb
.
Sheets
[
ws_name
]
=
ws
;
var
wbout
=
XLSX
.
write
(
wb
,
{
bookType
:
'xlsx'
,
bookSST
:
false
,
type
:
'binary'
});
saveAs
(
new
Blob
([
s2ab
(
wbout
)],
{
type
:
"application/octet-stream"
}),
"test.xlsx"
)
}
export
function
export_json_to_excel
({
multiHeader
=
[],
header
,
data
,
filename
,
merges
=
[],
autoWidth
=
true
,
bookType
=
'xlsx'
}
=
{})
{
/* original data */
filename
=
filename
||
'excel-list'
data
=
[...
data
]
data
.
unshift
(
header
);
for
(
let
i
=
multiHeader
.
length
-
1
;
i
>
-
1
;
i
--
)
{
data
.
unshift
(
multiHeader
[
i
])
}
var
ws_name
=
"SheetJS"
;
var
wb
=
new
Workbook
(),
ws
=
sheet_from_array_of_arrays
(
data
);
if
(
merges
.
length
>
0
)
{
if
(
!
ws
[
'!merges'
])
ws
[
'!merges'
]
=
[];
merges
.
forEach
(
item
=>
{
ws
[
'!merges'
].
push
(
XLSX
.
utils
.
decode_range
(
item
))
})
}
if
(
autoWidth
)
{
/*设置worksheet每列的最大宽度*/
const
colWidth
=
data
.
map
(
row
=>
row
.
map
(
val
=>
{
/*先判断是否为null/undefined*/
if
(
val
==
null
)
{
return
{
'wch'
:
10
};
}
/*再判断是否为中文*/
else
if
(
val
.
toString
().
charCodeAt
(
0
)
>
255
)
{
return
{
'wch'
:
val
.
toString
().
length
*
2
};
}
else
{
return
{
'wch'
:
val
.
toString
().
length
};
}
}))
/*以第一行为初始值*/
let
result
=
colWidth
[
0
];
for
(
let
i
=
1
;
i
<
colWidth
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
colWidth
[
i
].
length
;
j
++
)
{
if
(
result
[
j
][
'wch'
]
<
colWidth
[
i
][
j
][
'wch'
])
{
result
[
j
][
'wch'
]
=
colWidth
[
i
][
j
][
'wch'
];
}
}
}
ws
[
'!cols'
]
=
result
;
}
/* add worksheet to workbook */
wb
.
SheetNames
.
push
(
ws_name
);
wb
.
Sheets
[
ws_name
]
=
ws
;
var
wbout
=
XLSX
.
write
(
wb
,
{
bookType
:
bookType
,
bookSST
:
false
,
type
:
'binary'
});
saveAs
(
new
Blob
([
s2ab
(
wbout
)],
{
type
:
"application/octet-stream"
}),
`
${
filename
}
.
${
bookType
}
`
);
}
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/utils/export/index.ts
0 → 100644
浏览文件 @
c87ae67c
export
{
ExportExcel
}
from
'./export'
;
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/utils/index.ts
浏览文件 @
c87ae67c
export
*
from
'./util'
;
export
*
from
'./util'
;
export
*
from
'./ui'
;
export
*
from
'./ui'
;
export
*
from
'./net'
;
export
*
from
'./net'
;
\ No newline at end of file
export
*
from
'./export'
;
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录