2021/04/25振り返り

AtCoder

  • AC数: 1576->1584(+8)
  • 橙diff: 74->74(+0)
  • 黄diff: 151->154 (+3)

Project Euler

  • 109->109(+0)

英語

CollegeHumor の動画を2つ観た。普段聞いてるビジネス英語っぽい語彙ではっきり話してくれるので聞き取りやすく、内容に集中できてとても面白かった。知らない単語があっても字幕があるので確認できる。こういった動画の視聴を習慣にしたい。

www.youtube.com
www.youtube.com

睡眠

f:id:kenkoooo:20210426022109p:plain

来週も頑張りたい。

Google Apps Script で差し込み印刷

スプレッドシートのデータをドキュメントに差し込んで、新しいドキュメントを作りたい、というのをやるだけのGoogle Apps Scriptです。これで Google Drive で年賀状印刷みたいなのができるはず。

function myFunction() {
    const templateDocument = DocumentApp.openById("テンプレートとなるドキュメントのID");
    const templateBody = templateDocument.getBody();

    const outputDocument = DocumentApp.create("生成される差し込み印刷したドキュメントの名前");

    const spreadSheet = SpreadsheetApp.openById("差し込まれるデータが入ったスプレッドシートのID");
    const addressSheet = spreadSheet.getSheetByName("差し込まれるデータが入ったシートの名前");

    const values = addressSheet.getDataRange().getValues();
    for (let row_id = 1; row_id < values.length; row_id++) {
        const name = values[row_id][0];
        const school = values[row_id][1];

        const body = templateBody.copy();
        body.replaceText("{name}", name);
        body.replaceText("{school-name}", school);
        appendBody(outputDocument, body);
        return;
    }
}
  
  
/**
 * BodyをまるごとDocumentにコピーする関数
 * @param document 出力先ドキュメント
 * @param body ドキュメントにコピーしたいデータ
 */
function appendBody(document, body) {
    const documentBody = document.getBody();
    const numChildren = body.getNumChildren();
    for (let child_id = 0; child_id < numChildren; child_id++) {
        const element = body.getChild(child_id).copy();
        const type = element.getType();
        if (type === DocumentApp.ElementType.PARAGRAPH) {
            documentBody.appendParagraph(element);
        } else if (type === DocumentApp.ElementType.TABLE) {
            documentBody.appendTable(element);
        } else if (type === DocumentApp.ElementType.LIST_ITEM) {
            documentBody.appendListItem(element);
        } else {
            throw new Error(`Unsupported element type ${type}`);
        }
    }
}

2021/04/18振り返り

kenkoooo.hatenablog.com
kenkoooo.hatenablog.com
kenkoooo.hatenablog.com
kenkoooo.hatenablog.com
kenkoooo.hatenablog.com
kenkoooo.hatenablog.com

仕事と家さがしばかりで終わってしまった。来週はそれ以外を頑張りたい。

AtCoder

  • AC数: 1565->1576 (+11)
  • 橙diff: 73->74 (+1)
  • 黄diff: 148->151 (+3)

英語

睡眠

f:id:kenkoooo:20210419204644p:plain