Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
topsun-baoshen-excel
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何远江
topsun-baoshen-excel
Commits
ce44d230
Commit
ce44d230
authored
Dec 25, 2023
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
取消标题区域验证,添加标题去空格,修改标题获取字符串不全问题
parent
4b1addfe
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
57 deletions
+41
-57
ExcelOperate.vue
...ws/comment-excel/components/ExcelOperate/ExcelOperate.vue
+41
-57
No files found.
src/views/comment-excel/components/ExcelOperate/ExcelOperate.vue
View file @
ce44d230
...
@@ -557,46 +557,23 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
...
@@ -557,46 +557,23 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
*/
*/
const
result
:
Recordable
[]
=
[]
const
result
:
Recordable
[]
=
[]
const
rangeData
=
luckysheet
.
getRangeValue
()
const
rangeData
=
luckysheet
.
getRangeValue
()
console
.
log
(
rangeData
,
'-----'
)
// return
// return
const
{
beginColum
,
beginRow
,
endColum
,
endRow
}
=
formState
as
Recordable
const
{
beginColum
,
beginRow
,
endColum
,
endRow
}
=
formState
as
Recordable
const
{
beginColum
:
bc
,
beginRow
:
br
,
endColum
:
ec
,
endRow
:
er
}
=
currentAreaMark
const
{
beginColum
:
bc
,
beginRow
:
br
,
endColum
:
ec
,
endRow
:
er
}
=
currentAreaMark
// const isOneColumn = bc == ec
// 是否是纵向
// 是否是纵向
let
isVertical
=
rangeData
.
length
>
1
let
isVertical
=
rangeData
.
length
>
1
if
(
!
isRangeSide
(
unref
(
currentAreaMark
),
unref
(
formState
)))
{
// if (!isRangeSide(unref(currentAreaMark), unref(formState))) {
return
ElMessage
.
error
(
'请选择区域边缘作为标题!'
)
// return ElMessage.error('请选择区域边缘作为标题!')
}
// let position = 'left'
// if (beginRow == endRow) { // 横向
// isVertical = false
// if (beginRow == br) { // 上边
// position = 'top'
// } else if (beginRow == er) { // 下边
// position = 'bottom'
// } else {
// return ElMessage.error('请选择区域边缘作为标题!')
// }
// } else if (beginColum == endColum) { // 纵向
// isVertical = true
// if (beginColum == bc) { // 左边
// position = 'left'
// } else if (beginColum == ec) { // 右边
// position = 'right'
// } else {
// return ElMessage.error('请选择区域边缘作为标题!')
// }
// }
// }
if
(
isVertical
)
{
if
(
isVertical
)
{
// if (er - br + 1 != rangeData.length) {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
for
(
let
r
=
0
;
r
<
rangeData
.
length
;
r
++
)
{
for
(
let
r
=
0
;
r
<
rangeData
.
length
;
r
++
)
{
const
item
=
rangeData
[
r
][
0
]
const
item
=
rangeData
[
r
][
0
]
const
title
=
item
.
v
||
item
.
ct
.
s
.
map
((
itm
)
=>
itm
.
v
).
join
(
''
)
result
.
push
({
result
.
push
({
title
:
item
.
v
||
item
.
ct
.
s
[
0
].
v
,
title
:
title
.
replaceAll
(
' '
,
''
)
,
sheet
:
formState
.
sheetNum
,
sheet
:
formState
.
sheetNum
,
row
:
+
beginRow
+
r
,
row
:
+
beginRow
+
r
,
colum
:
beginColum
colum
:
beginColum
...
@@ -608,28 +585,11 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
...
@@ -608,28 +585,11 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
}
}
}
else
{
}
else
{
// // 如果只有一列,只能是头部或者尾部
// // 如果只有一列,只能是头部或者尾部
// if (isOneColumn) {
// console.log('isOneColumn')
// if (endColum != ec) {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
// if (rangeData[0].length == 1) {
// if (endRow == br || beginRow == er) {
// } else {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
// } else {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
// }
// if (ec - bc + 1 != rangeData[0].length) {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
for
(
let
c
=
0
;
c
<
rangeData
[
0
].
length
;
c
++
)
{
for
(
let
c
=
0
;
c
<
rangeData
[
0
].
length
;
c
++
)
{
const
item
=
rangeData
[
0
][
c
]
const
item
=
rangeData
[
0
][
c
]
cons
ole
.
log
(
item
,
'======
'
)
cons
t
title
=
item
.
v
||
item
.
ct
.
s
.
map
((
itm
)
=>
itm
.
v
).
join
(
'
'
)
result
.
push
({
result
.
push
({
title
:
item
.
v
||
item
.
ct
.
s
[
0
].
v
,
title
:
title
.
replaceAll
(
' '
,
''
)
,
sheet
:
formState
.
sheetNum
,
sheet
:
formState
.
sheetNum
,
row
:
beginRow
,
row
:
beginRow
,
colum
:
+
beginColum
+
c
colum
:
+
beginColum
+
c
...
@@ -642,18 +602,42 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
...
@@ -642,18 +602,42 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
}
}
// 清除之前的title颜色
// 清除之前的title颜色
resetCurrentHeadArea
(()
=>
{
//
resetCurrentHeadArea(() => {
luckysheet
.
setRangeShow
({
//
luckysheet.setRangeShow({
row
:
[
beginRow
,
endRow
],
//
row: [beginRow, endRow],
column
:
[
beginColum
,
endColum
]
//
column: [beginColum, endColum]
})
//
})
currentAreaMark
.
excelAreaTitle
=
result
// //
currentAreaMark.excelAreaTitle = result
})
//
})
// 合并组装的表头区域数据
// 合并组装的表头区域数据
// currentAreaMark.excelAreaTitle
if
(
currentAreaMark
.
excelAreaTitle
?.
length
>
0
)
{
// ? currentAreaMark.excelAreaTitle.push(...result)
const
arr
=
[...
result
,
...
unref
(
currentAreaMark
.
excelAreaTitle
)]
// : (currentAreaMark.excelAreaTitle = result)
// 合并,去重
currentAreaMark
.
excelAreaTitle
=
uniqArrayObject
(
arr
)
}
else
{
currentAreaMark
.
excelAreaTitle
=
result
}
}
function
uniqArrayObject
(
arr
=
[])
{
return
arr
.
reduce
((
cur
,
pre
,
index
)
=>
{
if
(
index
==
0
)
{
cur
.
push
(
pre
)
}
else
{
const
isDiff
=
cur
.
every
((
item
)
=>
{
return
(
item
.
column
!=
pre
.
column
||
item
.
row
!=
pre
.
row
||
item
.
sheet
!=
pre
.
sheet
||
item
.
title
!=
pre
.
title
)
})
isDiff
&&
cur
.
push
(
pre
)
}
return
cur
},
[])
}
}
setTimeout
(()
=>
{
setTimeout
(()
=>
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment