你好,方便贴一下您的代码吗?
async insertTable(data) {
const app = this.wps.Application;
const stack = app.Stack();
const tables = await app.ActiveDocument.Tables;
let tableRange = await app.ActiveDocument.ActiveWindow.Selection.Range;
let selection = await app.ActiveDocument.ActiveWindow.Selection;
let font = await selection.Font;
font.Size = 8;
// 插入表格
let thisTable = await tables.Add(
tableRange, // 位置信息
data.length, // 新增表格的行数
data[0].length, // 新增表格的列数
1,
1
);
for (let row = 0; row < data.length; row++) {
let rowObj = await thisTable.Rows.Item(row + 1);
for (let cell = 0; cell < data[row].length; cell++) {
let cellObj = await rowObj.Cells.Item(cell + 1);
try {
const range = await cellObj.Range;
range.Text = await data[row][cell];
} catch (e) {
console.log(e,1223);
}
}
}
await app.ActiveDocument.ActiveWindow.Selection.MoveDown();
await app.ActiveDocument.ActiveWindow.Selection.MoveDown();
stack.End();
},
data是一个二维数组[[1,2,3],[2,3.4]]
你好,当需要将光标移动至下一页时,请使用这个API:https://solution.wps.cn/docs/client/api/Word/Selection.html#insertbreak 然后您就可以正常插入表格了
不好意思麻烦问一下,因为这边插入表格的内容是不确定的位置也是不确定的,可以问一下这边有什么方法可以确定应该在什么时机插入分页符呢。
现在就是我只是单纯的插入表格的话是没有报错的,但是在后面往表格里插入文本就会报错
就是这里
Uncaught (in promise) Cannot set properties of undefined (setting 'Text')
就是会报这个错误
您好,使用您刚才提供的插入表格函数,可正常运行,您检查下传入的数据是否正确?保证二维数组的长度一致。
async function insertTable(data) {
const app = WPSOpenApi.Application
await app.ActiveDocument.ActiveWindow.Selection.InsertBreak(app.Enum.WdBreakType.wdTextWrappingBreak);
const tables = await app.ActiveDocument.Tables;
let tableRange = await app.ActiveDocument.ActiveWindow.Selection.Range;
let selection = await app.ActiveDocument.ActiveWindow.Selection;
let font = await selection.Font;
font.Size = 8;
// 插入表格
let thisTable = await tables.Add(
tableRange, // 位置信息
data.length, // 新增表格的行数
data[0].length, // 新增表格的列数
1,
1
);
for (let row = 0; row < data.length; row++) {
let rowObj = await thisTable.Rows.Item(row + 1);
for (let cell = 0; cell < data[row].length; cell++) {
let cellObj = await rowObj.Cells.Item(cell + 1);
try {
const range = await cellObj.Range;
range.Text = data[row][cell];
} catch (e) {
console.log(e,1223);
}
}
}
await app.ActiveDocument.ActiveWindow.Selection.MoveDown()
}