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

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

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