Я работаю с API Google Docs, чтобы вставить таблицу, а затем заполнять каждую ячейку текстом. Таблица вставлена правильно, но когда я вставляю текст в ячейки, весь контент появляется в первой ячейке, например:
my output < /p>
Что я делаю: < /p>
Я создаю таблицу, используя Inserttable. /> Я пытаюсь вставить текст в каждую ячейку, используя InsertText. < /li>
< /ol>
Вот соответствующий код, который я использую: < /p>
const insertTableWithText = async () => {
if (!docId) return;
try {
const doc = await gapi.client.docs.documents.get({ documentId: docId });
const endIndex = doc.result.body.content.reduce((max, el) => {
return el.endIndex > max ? el.endIndex : max;
}, 1);
const tableData = [
["Header 1", "Header 2"],
["Value 1", "Value 2"]
];
await gapi.client.docs.documents.batchUpdate({
documentId: docId,
resource: {
requests: [{
insertTable: {
rows: tableData.length,
columns: tableData[0].length,
location: { index: endIndex - 1 }
}
}]
}
});
await new Promise(resolve => setTimeout(resolve, 1000));
const updatedDoc = await gapi.client.docs.documents.get({ documentId: docId });
let tableElement = null;
for (let i = updatedDoc.result.body.content.length - 1; i >= 0; i--) {
if (updatedDoc.result.body.content.table) {
tableElement = updatedDoc.result.body.content;
break;
}
}
if (!tableElement) throw new Error("Table not found");
const requests = [];
tableElement.table.tableRows.forEach((row, rowIndex) => {
row.tableCells.forEach((cell, colIndex) => {
const paragraphIndex = cell.content[0].paragraph.elements[0].startIndex;
requests.push({
insertText: {
text: tableData[rowIndex][colIndex],
location: { index: paragraphIndex }
}
});
});
});
if (requests.length > 0) {
await gapi.client.docs.documents.batchUpdate({
documentId: docId,
resource: { requests }
});
}
} catch (err) {
console.error("Error inserting table with text:", err);
}
};
< /code>
Проблема:
вместо каждого значения, входящего в его соответствующую ячейку, все значения вставляются в первую ячейку, один за другим (как если бы индекс вставки повторно используется или перекрывается). < /p>
Как я правильно определяю правильный индекс, чтобы информировать текст в каждую отдельную ячейку?>
Подробнее здесь: https://stackoverflow.com/questions/795 ... of-table-h
Google Docs API: текст из InsertText появляется в первой ячейке таблицы - как правильно вставить текст в каждую ячейку? ⇐ Javascript
Форум по Javascript
1745221827
Anonymous
Я работаю с API Google Docs, чтобы вставить таблицу, а затем заполнять каждую ячейку текстом. Таблица вставлена правильно, но когда я вставляю текст в ячейки, весь контент появляется в первой ячейке, например:
my output < /p>
Что я делаю: < /p>
Я создаю таблицу, используя Inserttable. /> Я пытаюсь вставить текст в каждую ячейку, используя InsertText. < /li>
< /ol>
Вот соответствующий код, который я использую: < /p>
const insertTableWithText = async () => {
if (!docId) return;
try {
const doc = await gapi.client.docs.documents.get({ documentId: docId });
const endIndex = doc.result.body.content.reduce((max, el) => {
return el.endIndex > max ? el.endIndex : max;
}, 1);
const tableData = [
["Header 1", "Header 2"],
["Value 1", "Value 2"]
];
await gapi.client.docs.documents.batchUpdate({
documentId: docId,
resource: {
requests: [{
insertTable: {
rows: tableData.length,
columns: tableData[0].length,
location: { index: endIndex - 1 }
}
}]
}
});
await new Promise(resolve => setTimeout(resolve, 1000));
const updatedDoc = await gapi.client.docs.documents.get({ documentId: docId });
let tableElement = null;
for (let i = updatedDoc.result.body.content.length - 1; i >= 0; i--) {
if (updatedDoc.result.body.content[i].table) {
tableElement = updatedDoc.result.body.content[i];
break;
}
}
if (!tableElement) throw new Error("Table not found");
const requests = [];
tableElement.table.tableRows.forEach((row, rowIndex) => {
row.tableCells.forEach((cell, colIndex) => {
const paragraphIndex = cell.content[0].paragraph.elements[0].startIndex;
requests.push({
insertText: {
text: tableData[rowIndex][colIndex],
location: { index: paragraphIndex }
}
});
});
});
if (requests.length > 0) {
await gapi.client.docs.documents.batchUpdate({
documentId: docId,
resource: { requests }
});
}
} catch (err) {
console.error("Error inserting table with text:", err);
}
};
< /code>
Проблема:
вместо каждого значения, входящего в его соответствующую ячейку, все значения вставляются в первую ячейку, один за другим (как если бы индекс вставки повторно используется или перекрывается). < /p>
Как я правильно определяю правильный индекс, чтобы информировать текст в каждую отдельную ячейку?>
Подробнее здесь: [url]https://stackoverflow.com/questions/79584182/google-docs-api-text-from-inserttext-appears-all-in-the-first-cell-of-table-h[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия