2026年3月23日月曜日

🐆SheetJS ブラウザ上JSでExcel処理 VBAも使える

 

SheetJSコミュニティ版は、ほぼすべての複雑なスプレッドシートから有用なデータを抽出し、レガシーソフトウェアでも最新ソフトウェアでも同様に動作する新しいスプレッドシートを生成するための、実戦テスト済みのオープンソースソリューションを提供します。

SheetJS Proは、データ処理を超えたソリューションを提供します: 複雑なテンプレートを簡単に編集したり、スタイリングであなたの内なるピカソを引き出したり、画像/グラフ/ピボットテーブルでカスタムシートを作成したり、数式を評価し、計算をWebアプリケーションに移植したり、一般的なスプレッドシートタスクを自動化したり、その他多くのことができます!


画像
https://editor.p5js.org/setapolo/sketches/PyFayyGl0

WebブラウザからExcelファイルを生成してダウンロードさせる機能が可能になるのは、主に以下のような技術的背景と進歩があるからです:

  1. JavaScriptの進化: ウェブアプリケーションのフロントエンドで動作するJavaScriptは、時間とともに大きく進化しました。特にES6(ECMAScript 2015)以降の仕様では、プロミス(非同期処理)、アロー関数、テンプレートリテラルなどの強力な機能が追加され、より複雑な処理をシンプルに記述できるようになりました。これにより、ブラウザ上で高度なファイル処理やデータ操作が可能になっています。

  2. HTML5とWeb APIの拡張: HTML5の導入とともに、ファイルAPIやBlob(Binary Large Object)APIなど、ブラウザで直接ファイルを扱うためのAPIが拡充されました。これらのAPIを使用することで、ブラウザ上でファイルを生成し、ユーザーにダウンロードさせることができるようになります。特に、Blobオブジェクトを使ってバイナリデータを扱い、URL.createObjectURL()メソッドでそのデータへのリンクを生成し、<a>タグのhref属性に設定することでダウンロードリンクを作成できます。

  3. 外部ライブラリの開発: SheetJSやExcelJSのような外部ライブラリが開発されたことで、開発者はこれらのライブラリを利用することにより、Excelファイルの読み書きを簡単に実装できるようになりました。これらのライブラリは、Excelファイルの構造を理解し、JavaScriptオブジェクトとして扱うことを可能にします。さらに、これらのライブラリはCDNを通じて簡単に利用でき、迅速に機能を実装できる利点があります。

  4. ブラウザの性能向上: 近年のブラウザは大幅に性能が向上しており、以前はサーバーサイドでしか可能ではなかった処理もクライアントサイドで実行できるようになりました。この性能向上により、複雑なデータ処理やファイル操作もブラウザ内でスムーズに行えるようになりました。

Visual Basic for Applications(VBA)は、Excelに組み込まれたスクリプト・プラットフォームである。ユーザーは、スプレッドシート内にユーザー定義関数やマクロコードを含めることができます。
SheetJSワークブックオブジェクトのvbarawプロパティは、VBAマクロやその他のメタデータを含むエンコードされたデータブロブです。
SheetJSのreadメソッドとreadFileメソッドは、デフォルトではVBAメタデータを取り込みません。bookVBAオプションがtrueに設定されると、vbarawブロブが作成されます。

https://docs.sheetjs.com/docs/csf/features/vba