LoginSignup
takasiro3
@takasiro3 (高城 良治)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Seet.jsでGridデータが更新保存できない

#javaScript、Seet.jsを使用しています。

Grid上での編集を行って、元のファイルに保存上書き保存を行いたいのですが。
 Seet.jsを使用して XLSXまたは、CSVを読み込み、データの表示、編集、保存まで行いたいのですが、現状データが保存されません。
 
#処理内容です。
 ---
 let data ;
 <script type="text/javascript" src="./show-sheet.js">
 const blob = new Blob([bom, data], { type: "text/csv" });
 const bom = new Uint8Array([0xef, 0xbb, 0xbf]) ; //BOMを付与
 link.href = URL.createObjectURL(blob);      //ファイル作成
 URL.revokeObjectURL(link.href);
 ------

#show-sheet.jsでdataがセットされているはずなのですがファイル中では保存されていません。
 ファイルのサイズやタイムスタンプは変更されているので更新されていると思うのですが内容はオリジナルのままです。
osは、win10でEdgの環境で行っています。ご助言よろしくお願いします。

0

1Answer

Seet.jsなるものがSheetJSではないかと思われますがひとまず無視して話をします.

どのスコープでそのコードが実行されているのかその抜粋だけでは分かりませんので,dataに本当にデータが入っているかどうかは何かしら保証する必要があります.

確認なのですがJSソース中にscriptタグを書いているのですか?
それは他のスクリプトを読み込む方法として正しくありません.

モジュールか関数か何かで,show-sheet.jsから確実に変数dataにデータを受け取れるようにしないとlet dataに内容は入ってきません.

<script src="hoge.js"></script>
<script>
let data = hogehoge();//hoge.jsで定義した関数.
</script>
// ESModuleで書く例.type="module"が必要
import hogehoge from 'hoge.js';

let data = hogehoge();//hoge.jsで定義した関数

ついでなのですが(おそらくこの辺を参考にしたのだろうと思われますが),UTF-8へのBOMはExcelでもデータを取り込むときゴミが付く原因になりますので,付与しないでください(UTF-8では基本的に不要なものです).

0Like

Comments

  1. @takasiro3

    Questioner

    回答ありがとうございます。再度ソースを見直して試してみます。

Your answer might help someone💌