fix: 拷贝为HTML bug

This commit is contained in:
ljcoder 2023-10-14 13:12:02 +08:00
parent 0c691cbd55
commit a7f3d5da8d
3 changed files with 1348 additions and 527 deletions

1828
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -252,16 +252,17 @@ export class ExcelView extends TextFileView {
const eri = this.cellsSelected.eri || 0;
const eci = this.cellsSelected.eci || 0;
// console.log('data', data, sri, sci, eri, eci)
console.log('data', data, sri, sci, eri, eci)
var html = "<table>";
if (data) {
// 记录合并单元格数量
var mergeMap: Map<string, boolean> = new Map()
for (var row = sri; row <= eri; row++) {
html += "<tr>";
// 记录合并单元格数量
var mergeMap = {}
for (var col = sci; col <= eci; col++) {
// 获取当前行的数据
@ -277,23 +278,37 @@ export class ExcelView extends TextFileView {
var mergeRow = cell.merge[0] + 1
var mergeCol = cell.merge[1] + 1
// 有合并行
// for(var r = 1; r < mergeRow; r ++) {
// const index = `${row + r}-${col}`
// mergeMap.index = true
// }
html += `<td rowspan="${mergeRow}" colspan="${mergeCol}">${cell.text}</td>`;
// 记录合并的行跟列
for(var r = 0; r < mergeRow; r ++) {
const index = `${row + r}-${col}`
mergeMap.set(index, true)
for(var c = 0; c < mergeCol; c ++) {
const index = `${row + r}-${col + c}`
mergeMap.set(index, true)
}
}
html += `<td rowspan="${mergeRow}" colspan="${mergeCol}">${cell.text || ""}</td>`;
} else {
html += `<td>${cell.text}</td>`;
// 无合并单元格直接添加
html += `<td>${cell.text || ""}</td>`;
}
} else {
// 单元格没数据添加空白单元格
html += `<td></td>`;
// 添加空白单元格需要判断是否被合并了
const index = `${row}-${col}`
if (!mergeMap.get(index)) {
// 单元格没数据添加空白单元格 & 没有被合并单元格
html += `<td></td>`;
}
}
} else {
// 整行都没数据
html += `<td></td>`;
const index = `${row}-${col}`
// 添加空白单元格需要判断是否被合并了
if (!mergeMap.get(index)) {
// 单元格没数据添加空白单元格 & 没有被合并单元格
html += `<td></td>`;
}
}
}

View file

@ -58,7 +58,7 @@ export function t(str: keyof typeof en): string {
// TODO
}
console.log(moment.locale())
// console.log(moment.locale())
return (locale && locale[str]) || en[str];
}