1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

kintoneの添付Excelファイルを書き換えてアップロードする

Last updated at Posted at 2021-06-02

今回は、添付のExcelファイルを書き換えたものをアップロードするカスタマイズです。
※ただしExcelの書式は消えてしまいます(><)

添付ファイルAのExcelファイルの中身を書き換えて、添付ファイルBにアップロードします。
image.png

アプリの準備

フィールド種類 フィールドコード 備考
スペース spBtn ボタン設置用
添付ファイル 添付ファイルA ダウンロードして書き換える
添付ファイル 添付ファイルB 書き換えたものをアップロードする

image.png

添付するExcelファイルは前回使用したExcelファイルを使います。

JavaScript

使用するライブラリは下記2つです。

JavaScript / CSSでカスタマイズに設定しておきます。

https://unpkg.com/@kintone/rest-api-client@latest/umd/KintoneRestAPIClient.min.js
https://unpkg.com/xlsx/dist/xlsx.full.min.js

詳細画面表示後イベントに下記コードを書いていきます。

// スペースフィールドにボタン設置
const sp = kintone.app.record.getSpaceElement("spBtn");
const btn = document.createElement("button");
btn.textContent = "ボタン";
sp.appendChild(btn);

// ボタンクリック
btn.addEventListener("click", async () => {
  const obj = kintone.app.record.get();
  const client = new KintoneRestAPIClient();
  // 添付ファイルAに添付のエクセルファイルを読み込む
  const data = await client.file.downloadFile({
    fileKey: obj.record["添付ファイルA"].value[0].fileKey,
  });
  // 添付ファイルAフィールドのエクセルファイルのセルA1の値を"あいうえお"にする
  const workbook = XLSX.read(data, { type: "array" });
  workbook.Sheets[workbook.SheetNames[0]].A1 = {
    v: "あいうえお",
  };
  // "あいうえお"にしたデータをExcelファイルにする
  const wo = XLSX.write(workbook, { type: "array" });
  // ダウンロードする(ついでに)
 XLSX.writeFile(workbook, "あいうえおにした.xlsx");
  // 作ったExcelファイルをアップロードして添付ファイルBフィールドに添付する
  const FILE = {
    name: "あいうえおにした.xlsx",
    data: wo,
  };
  const { fileKey } = await client.file.uploadFile({
    file: FILE,
  });
  await client.record.updateRecord({
    app: kintone.app.getId(),
    id: kintone.app.record.getId(),
    record: {
      添付ファイルB: {
        value: [{ fileKey }],
      },
    },
  });
  // 画面更新
  location.reload();
});

動作確認&まとめ

添付ファイルAの中身を書き換えて添付ファイルBに添付されます。
ついでにダウンロードもされます。

testiiii.gif

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?