お世話になっております。
kintone上xlsx-populateを使用して、
エクセルファイルの読み書きをしたいです。
サンプルプログラムを教えていただけますと助かります。
下記はやりたい内容です。
kintoneの添付ファイルフィールドからアップロードしたエクセルを読み込み、エクセルに値を設定、出力したいです。
[Sheetjs]ではなく書式を保持できるライブラリ[xlsx-populate]を使用したいです。
ご教示いただけますと幸いです。
お世話になっております。
kintone上xlsx-populateを使用して、
エクセルファイルの読み書きをしたいです。
サンプルプログラムを教えていただけますと助かります。
下記はやりたい内容です。
kintoneの添付ファイルフィールドからアップロードしたエクセルを読み込み、エクセルに値を設定、出力したいです。
[Sheetjs]ではなく書式を保持できるライブラリ[xlsx-populate]を使用したいです。
ご教示いただけますと幸いです。
ぽーさん
テンプレート用の添付ファイルを他のアプリに保存しています。
超適当な回答になりますが。。。参考まで
(function() {
'use strict';
kintone.events.on('app.record.detail.show', function(event) {
// スペースフィールドにボタン設置
const sp = kintone.app.record.getSpaceElement("spBtn");
const btn = document.createElement("button");
btn.textContent = "xlxPopulate";
sp.appendChild(btn);
let fileNameSource = event.record.テンプレートの説明.value;
let extension = fileNameSource.substring(fileNameSource.lastIndexOf("."));
let exportFileName = event.record.出力ファイル名.value;
// ボタンクリック
btn.addEventListener("click", async () => {
const fileKey = await kintone.api(
kintone.api.url("/k/v1/record.json", true),
"GET", {
app: kintone.app.getLookupTargetAppId("テンプレート"),
id: event.record.テンプレート.value,
}
);
const url =location.origin+"/k/v1/file.json?fileKey=" +fileKey.record.添付ファイル.value[0].fileKey;
// ファイルダウンロード
const req = new XMLHttpRequest();
req.open("GET", url);
req.setRequestHeader("X-Requested-With", "XMLHttpRequest");
req.responseType = "arraybuffer";
// テンプレート読み込み
req.onload = async (e) => {
const wb = await XlsxPopulate.fromDataAsync(req.response);
const ws = wb.sheet(0);
// セル操作
ws.cell('AB1').value("write somethine here");
ws.cell('A3').value("write somethine here2");
// ダウンロード(SaveAsモジュール)
const wbout = await wb.outputAsync();
const blob = new Blob([wbout], {
type: 'application/octet-stream'
});
const output_filename = exportFileName + extension;
saveAs(blob, output_filename);
};
req.send();
});
return event;
});
})();
SAI様
お世話になっております。
サンプルコードありがとうございました。
サンプルコードを使ってみたところ、「xlxPopulate」のボタン押下際に、
「 ReferenceError: XlsxPopulate is not defined」というエラーが発生しました。
XlsxPopulateをkintone上で使用するためには、XlsxPopulate用のライブラリが必要でしょうか。
下記のライブラリをURL指定で追加していますが、エラーの内容が変わりませんでした。
https://cdnjs.com/libraries/xlsx-populate
⇒https://cdnjs.cloudflare.com/ajax/libs/xlsx-populate/1.21.0/xlsx-populate.min.js
ご教示いただけますと幸いです。
ぽーさん~
僕は実際参照していたjs
最後のやつは先ほど送っていたコードとなります
https://cdnjs.cloudflare.com/ajax/libs/xlsx-populate/1.21.0/xlsx-populate.min.js
https://cdn.jsdelivr.net/npm/file-saver@2.0.5/dist/FileSaver.min.js
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。