【问题标题】:Can you set the mergedCells property in Kendo UI for jQuery ooxml.Workbook.sheets without range name?您可以在 Kendo UI 中为没有范围名称的 jQuery ooxml.Workbook.sheets 设置 mergedCells 属性吗?
【发布时间】:2023-02-09 23:20:11
【问题描述】:
我在合并工作簿中现有工作表中的单元格时遇到问题。我在创建工作表后尝试使用 mergedCells 遇到了障碍,我似乎无法获得 Workbook.sheet 中 mergedCells 选项所记录的字符串格式的范围名称:
mergedCells: ["A6:A8"]
我所拥有的只是细胞的索引。
我有逻辑来确定要合并哪些单元格的索引,但只有索引。我想不出一种方法来获取 Excel 单元格名称/字符串(如“A1”)中的范围。在下面的示例中,忽略我如何获得索引值,我无法根据索引合并单元格,其中 indexA 是列,indexB1 和 indexB2 是行。
let indexA = 0;
let indexB1 = 5;
let indexB2 = 7;
sheet.mergedCells = [[{indexA, indexB1},{indexA,indexB2}]]
我附上了工作簿中我想要合并的单元格类型的图片,我的循环首先从 A6 到 A8 并确定要合并的索引,因为所有单元格的值都等于“Boat”。感谢任何帮助,如果需要,我会尝试提供更多详细信息,但由于我所使用的系统的性质,很难提供更多信息。
提前致谢。format of workbook
【问题讨论】:
标签:
kendo-ui
telerik
kendo-grid
export-to-excel
【解决方案1】:
那么您有需要合并的单元格的 R1C1 符号吗?如果是这样,按照 this thread 中的建议,您可以生成 A1 符号的范围 - example:
function columnName(index) {
var cname = String.fromCharCode(65 + ((index - 1) % 26));
if (index > 26)
cname = String.fromCharCode(64 + (index - 1) / 26) + cname;
return cname;
}
var r1 = 2;
var c1 = 3;
var r2 = 4;
var c2 = 5;
var rangeAsString = `${columnName(c1)}${r1}:${columnName(c2)}${r2}`;
var workbook = new kendo.ooxml.Workbook({
sheets: [{
mergedCells: [rangeAsString],
rows: [
{ cells: [ { value: "Document Title" } ] },
{ cells: [ { value: 22 }, { value: 33 }, { value: 44 }, {value: 55} ] }
]
}]
});
kendo.saveAs({
dataURI: workbook.toDataURL(),
fileName: "Test.xlsx"
});