第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何使用 Google Apps 腳本在 Google 文檔中的表格單元格內(nèi)復(fù)制和編輯文本數(shù)據(jù)

如何使用 Google Apps 腳本在 Google 文檔中的表格單元格內(nèi)復(fù)制和編輯文本數(shù)據(jù)

慕萊塢森 2022-10-13 19:46:42
我是 Google Apps 腳本的新手,并且已經(jīng)被這個(gè)問題困擾了好幾天。提前感謝那些試圖幫助我的人。我正在嘗試從某個(gè)表格單元格中復(fù)制文本數(shù)據(jù),用換行符將它們分開并將它們放入變量中,然后在另一個(gè)表格中使用它們。使用 tablecell.getText() 你會丟失所有格式,所以我想使用 Paragraphs,但是使用表格單元格你不能使用 getParagraphs()...tableCellOut.appendParagraph(tableIn.getRow(1).getChild(1).asParagraph());我不知道我離目標(biāo)有多近。有沒有一種方法可以在不丟失格式的情況下編輯文本數(shù)據(jù)?
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

我相信你的目標(biāo)如下。

  • 您希望使用 Google Apps 腳本將表格單元格轉(zhuǎn)換為問題中顯示的圖像。(下圖來自您的問題。)

http://img1.sycdn.imooc.com//6347faca00018e6506230348.jpg

為此,這個(gè)答案怎么樣?我想提出以下示例腳本來解決您的問題。該腳本的流程如下。

  1. 檢索表。

  2. 檢索表格的單元格“B2”。

    • 這是來自您的示例圖像。

  3. 創(chuàng)建一個(gè)包含文本和文本樣式的對象。

    • 這用于將值拆分到單元格。

  4. 文本和文本樣式設(shè)置為單元格。

  5. 當(dāng)行數(shù)小于拆分值的行數(shù)時(shí),將追加新行并將文本和文本樣式設(shè)置為單元格。

示例腳本:

請將以下腳本復(fù)制并粘貼到 Google 文檔的容器綁定腳本中,然后myFunction在腳本編輯器中運(yùn)行 的功能。在這個(gè)腳本中,rowcolumn分別是行號和列號。因此,在您的圖像中,請?jiān)O(shè)置row = 2column = 2。例如,當(dāng)您要拆分單元格“C3”時(shí),請?jiān)O(shè)置row = 3column = 3。

function myFunction() {

  // 1. Retrieve table.

  const body = DocumentApp.getActiveDocument().getBody();

  const table = body.getTables()[0];

  

  // 2. Retrieve the cell "B2" of the table.

  const row = 2;  // Please set the row number.

  const column = 2;  // Please set the column number.

  const cell = table.getCell(row - 1, column - 1);

  

  // 3. Create an object including the text and text styles. This is used for splitting values to the cells.

  const text = cell.editAsText();

  let temp = [];

  const textRuns = [].reduce.call(text.getText(), (ar, c, i, a) => {

    if (c != "\n") temp.push({text: c, foregroundColor: text.getForegroundColor(i), backgroundColor: text.getBackgroundColor(i), textAlignment: text.getTextAlignment(i), italic: text.isItalic(i)});

    if (c == "\n" || i == a.length - 1) {

      ar.push({text: temp.reduce((s, {text}) => s += text, ""), styles: temp});

      temp = [];

    }

    return ar;

  }, []);

  

  // 4. The text and text styles are set to the cells.

  for (let i = row - 1; i < table.getNumRows(); i++) {

    const t = table.getCell(i, column - 1).editAsText();

    const run = textRuns.shift();

    t.setText(run.text);

    run.styles.forEach((r, j) => {

      t.setBackgroundColor(j, j, r.backgroundColor);

      t.setForegroundColor(j, j, r.foregroundColor);

      t.setItalic(j, j, r.italic);

      if (r.textAlignment) t.setTextAlignment(j, j, r.textAlignment);

    });

  }

  

  // 5. When the number of rows are smaller than the number of rows of splitted values, the new rows are appended and the text and text styles are set to the cells.

  while (textRuns.length > 0) {

    const appendedRow = table.appendTableRow();

    for (let i = 0; i < table.getRow(row - 1).getNumCells(); i++) {

      appendedRow.appendTableCell("");

    }

    const t = appendedRow.getCell(column - 1).editAsText();

    const run = textRuns.shift();

    t.setText(run.text);

    run.styles.forEach((r, j) => {

      t.setBackgroundColor(j, j, r.backgroundColor);

      t.setForegroundColor(j, j, r.foregroundColor);

      t.setItalic(j, j, r.italic);

      if (r.textAlignment) t.setTextAlignment(j, j, r.textAlignment);

    });

  }

}

結(jié)果:

當(dāng)為您的初始表運(yùn)行上述腳本時(shí),可以獲得以下結(jié)果。在此演示中,首先展開單元格“B2”的值,然后展開單元格“C3”的值。

https://i.stack.imgur.com/jEwWK.gif

筆記:

  • 此示例腳本是為上述情況準(zhǔn)備的。如果您對上述圖像的規(guī)格進(jìn)行了更改,則該腳本可能無法使用。所以請注意這一點(diǎn)。

  • 在此示例腳本中,BackgroundColorForegroundColor用作文本樣式。當(dāng)您想使用其他文本樣式時(shí),請修改上述腳本。



查看完整回答
反對 回復(fù) 2022-10-13
  • 1 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號