Commit 53d88947 authored by 何远江's avatar 何远江

修改 设置标题合并单元格无法设置问题

parent 7d6a94e0
......@@ -68,7 +68,6 @@
<el-descriptions-item label-class-name="descriptions-label" label="循环体间隔">
{{ currentAreaMark.checkNumber || '--' }}
</el-descriptions-item>
</el-descriptions>
<el-checkbox true-label="Y" false-label="N" v-model="currentAreaMark.oneself"
......@@ -437,6 +436,9 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
// 设置完成之后重置表单
settingForm.value?.resetFields(['excelAreaType', 'excelAreaNicname'])
} else {
if (!currentAreaMark.excelAreaTitle) {
return ElMessage.error('请先设置数据区!')
}
// 判断是否在同一sheet
if (formState.sheetNum !== currentAreaMark.sheetNum) {
return ElMessage.error('请在同一sheet页中选择数据!')
......@@ -449,40 +451,41 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
*/
const result = []
const rangeData = luckysheet.getRangeValue()
// console.log(rangeData, '-----')
// return
const { beginColum, beginRow, endColum, endRow } = formState as Recordable
const { beginColum: bc, beginRow: br, endColum: ec, endRow: er } = currentAreaMark
// 判断所在区域,和位置,选择的单元格,只能在数据区边缘
if (beginColum == endColum) {
// 一列
if (beginRow != br && endRow != er) {
luckysheet.setRangeShow({
row: [br, er],
column: [bc, ec]
})
return ElMessage.error('请在当前区域选择标题区!')
}
} else if (beginRow == endRow) {
// 一行
if (beginColum != bc && endColum != ec) {
luckysheet.setRangeShow({
row: [br, er],
column: [bc, ec]
// 是否是纵向
const isVertical = rangeData.length > 1
if (isVertical) {
for (let r = 0; r <= endRow; r++) {
const item = rangeData[r][0]
result.push({
title: item.v || item.ct.s[0].v,
sheet: formState.sheetNum,
row: +beginRow + r,
colum: beginColum
})
return ElMessage.error('请在当前区域选择标题区!')
// 如果有合并的,跳过合并单元格个数
if (item.mc) {
r += item.mc.rs - 1
}
}
}
for (let i = beginRow, r = 0; i <= endRow; i++) {
for (let k = beginColum, c = 0; k <= endColum; k++) {
} else {
for (let c = 0; c <= endRow; c++) {
const item = rangeData[0][c]
result.push({
title: rangeData[r][c].v || rangeData[r][c].ct.s[0].v,
title: item.v || item.ct.s[0].v,
sheet: formState.sheetNum,
row: i,
colum: k
row: beginRow,
colum: +beginColum + c
})
c++
// 如果有合并的,跳过合并单元格个数
if (item.mc) {
c += item.mc.cs - 1
}
}
r++
}
// 合并组装的表头区域数据
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment