图片位置问题
本帖最后由 Wilson.Zhang 于 2024-7-1 18:43 编辑产品:SpreadJS
版本:17.0.10
调研编号:SJS-24654
LastReview:2024-7-1
该问题已在17.1.0版本修复。
我在这个单元格的位置插入了一张图片,我这个sheet又新增行的需求,通过代码在18行之后添加行,添加行之后,图片的位置不动,还是停留在原来的位置,这个问题又解决方案吗?以下是我新增行的代码,addRowsToReportSheet是新增报告sheet页的方法addValidate() {
const spread = this.designer.getWorkbook();
const activeSheet = spread.getActiveSheet();
// 尝试获取basicrow名称管理器的范围
let customName = activeSheet.getCustomName("basicrow");
// 检查basicrow是否存在
if (!customName) {
console.error("命名范围 'basicrow' 未找到。");
this.visible = false;
return;
}
// 获取basicrow的表达式
let expression = customName.getExpression();
if (!expression) {
console.error("命名范围 'basicrow' 的表达式未定义。");
this.visible = false;
return;
}
// 获取basicrow的范围
let basicrow = expression.getRange();
if (!basicrow) {
console.error("无法获取 'basicrow' 的范围。");
this.visible = false;
return;
}
// 如果this.count存在,添加行
if (this.count) {
let totalRowCount = activeSheet.getRowCount(); // 获取当前工作表的总行数
let rowCountToAdd = Number(this.count); // 要添加的行数
// let colCount = basicrow.colCount; // basicrow的列数
let startRow = basicrow.row; // basicrow的起始行
let rowHeight = activeSheet.getRowHeight(startRow); // 获取basicrow行高
let table = activeSheet.tables.findByName("Table1"); // 查找名为"Table1"的表格
let tableRange = table.range(); // 获取表格范围
let currentRowCount = tableRange.rowCount; // 当前表格行数
let row = tableRange.row; // 表格起始行
console.log(basicrow, "basicrow");
console.log(tableRange, "tableRange");
// 在工作表末尾添加行
activeSheet.addRows(totalRowCount, rowCountToAdd * basicrow.rowCount);
// 在表格中插入新行
table.insertRows(
currentRowCount - 2,
rowCountToAdd * basicrow.rowCount,
true
);
// 设置新行的行高
for (let i = 1; i <= rowCountToAdd * basicrow.rowCount + 3; i++) {
activeSheet.setRowHeight(currentRowCount + row + i, rowHeight);
}
for (let i = 0; i < rowCountToAdd; i++) {
activeSheet.copyTo(
startRow,
basicrow.col,
currentRowCount + row + basicrow.rowCount * i,
basicrow.col,
basicrow.rowCount,
basicrow.colCount,
window.GC.Spread.Sheets.CopyToOptions.style |
window.GC.Spread.Sheets.CopyToOptions.formula |
window.GC.Spread.Sheets.CopyToOptions.span
);
}
// } else {
// // 复制basicrow范围的内容到新插入的行
// for (let i = 0; i < rowCountToAdd; i++) {
// activeSheet.copyTo(
// startRow,
// basicrow.col,
// currentRowCount + row + i,
// basicrow.col,
// 1,
// colCount,
// window.GC.Spread.Sheets.CopyToOptions.style
// );
// }
// }
// 调用处理另一个工作表的方法
this.addRowsToReportSheet(spread, this.count);
// 重置计数器并隐藏当前视图
this.count = 1;
this.visible = false;
} else {
// 如果this.count不存在,则隐藏当前视图
this.visible = false;
}
},
addRowsToReportSheet(spread, rowCount) {
// 获取名为"检测数据录入-报告"的工作表
let reportSheet = spread.getSheetFromName("检测数据录入-报告");
console.log(reportSheet, "====reportSheet");
// 检查工作表是否存在
if (!reportSheet) {
console.error("工作表 '检测数据录入-报告' 未找到。");
return;
}
// 获取名为"reportrow"的命名范围
let reportCustomName = reportSheet.getCustomName("reportrow");
if (!reportCustomName) {
console.error("命名范围 'reportrow' 未找到。");
return;
}
// 获取命名范围的表达式
let reportExpression = reportCustomName.getExpression();
if (!reportExpression) {
console.error("命名范围 'reportrow' 的表达式未定义。");
return;
}
// 获取命名范围的范围
let reportRow = reportExpression.getRange();
if (!reportRow) {
console.error("无法获取 'reportrow' 的范围。");
return;
}
let totalRowCount = reportSheet.getRowCount(); // 获取当前工作表的总行数
let rowCountToAdd = Number(rowCount); // 要添加的行数
// let colCount = reportRow.colCount; // reportrow的列数
let startRow = reportRow.row; // reportrow的起始行
let rowHeight = reportSheet.getRowHeight(startRow); // 获取reportrow行高
let table = reportSheet.tables.findByName("Table2"); // 查找名为"Table2"的表格
let tableRange = table.range(); // 获取表格范围
let currentRowCount = tableRange.rowCount; // 当前表格行数
let row = tableRange.row; // 表格起始行
// 在工作表末尾添加行
reportSheet.addRows(totalRowCount, rowCountToAdd * reportRow.rowCount);
// 在表格中插入新行
table.insertRows(
currentRowCount - 2,
rowCountToAdd * reportRow.rowCount,
true
);
// 设置新行的行高
for (let i = 0; i < rowCountToAdd * reportRow.rowCount + 7; i++) {
reportSheet.setRowHeight(currentRowCount + row + i, rowHeight);
}
// // 复制basicrow范围的内容到新插入的行
for (let i = 0; i < rowCountToAdd; i++) {
reportSheet.copyTo(
startRow,
reportRow.col,
currentRowCount + row + reportRow.rowCount * i,
reportRow.col,
reportRow.rowCount,
reportRow.colCount,
window.GC.Spread.Sheets.CopyToOptions.style |
window.GC.Spread.Sheets.CopyToOptions.formula |
window.GC.Spread.Sheets.CopyToOptions.span
);
}
},
您好,您描述的情况我了解了,这边调研一下,后续有进展我会在本贴中回复您。 您好,您描述的情况初步认定为是一个Bug,目前正在修复中,等修复完毕我会在帖子下回复您。 Joestar.Xu 发表于 2024-6-6 12:28
您好,您描述的情况初步认定为是一个Bug,目前正在修复中,等修复完毕我会在帖子下回复您。
需要发新版本修复吗,新版本大概什么时候发布? 您好,该问题预计在17.1.0版本中修复,新版本将在本月底发布。 您好!17.1.0版本已发布,您可以升级后测试。谢谢!
页:
[1]