それを回避するにはCSVファイルの先頭に BOM をつけるだけです。
解決方法はこれ: https://stackoverflow.com/questions/60873673/how-to-add-a-utf-8-bom-in-kotlin
» Read Moreエクセルデータ起点のなになに・・・というケースに備えて、UXP InDesign Scripting の読み込みサンプルを書きました。
UXP InDesign, SheetJS を利用して MSエクセルデータを扱う(rollup.js編)では、rollup.js を使ってスクリプトをひとつのファイルにまとめていました(バンドル)が、Deno を使ってバンドルできることがわかりました。
もっとも、あくまでここで検証した簡単なスクリプトについてうまくバンドルできたという話です。 いろいろなケース、とかすべてのケースで、Deno によるバンドル(rollup.js によるバンドルもそうですが)がうまくいくかはわかりません。
簡単に手順を書き残します。
» Read MoreUXP Script ではモダンなJavaScript(ES6) に対応したので、既存のJavaScriptライブラリを利用できるようになりました。
今回は SheetJS を使って MSエクセルデータを扱う方法を試しました。
完成したスクリプトの配布時にそれを一つにまとめたいので Rollup.js を使います。 この手のバンドルツールといえば webpack が定番ですが、 今回試した範囲では webpack と UXP InDesign Script の組み合わせはうまくいかなったので webpack の代わりに Rollup.js を使います。
2023-02-11 更新
Rollup.js の代わりに deno を使って bundle できることがわかりました。詳しくはこちらのエントリーをご覧ください。
完成したスクリプトの作動デモはこちらを https://youtu.be/SnpH6Ui7nOs ご覧ください。
» Read More「Node.js による InDesign ExtendScript モダン開発入門」というキンドル書籍を一年前くらいに書いたのですが、 とうとう、InDesign が最新バージョン(18.0)から UXP に対応しました。 つまり、小細工しなくても普通にいわゆるモダンなJavaScript (ES6) で InDesign 用の Script を書くことができるようになった。
なお、InDesign の UXP は Plugin にはまだ対応していないそうです。 UXP Scripting と呼ばれるスクリプト実行だけ対応した段階。 そのうち Plugin に対応するようです。 https://developer.adobe.com/indesign/uxp/plugins/ に Comming Soon って書いてあります。
ExtendScript で面倒だったことの一つに https の外部リソースを取得できなかったことがあります。 UXP ではこの問題が解決されているのか関心があったので調べました。 fetch が使える、と書いてあったので、いけるか!と思って調べたところ問題なく使えたので、UXPのスクリプトとともに得たことを簡単にシェアします。
なお、このエントリーでは InDesign 2023 (version 18.1)と UDT version 1.7.0.13 を使用しています。
» Read Moreこのように、タイプとポケモン名が列挙されているデータがあるとする。 これをA列をキーにして同じタイプを持つポケモンをまとめたい(グループにしたい)という場合。 エクセルで対処するには、どうすればいいか。 および、Kotlin での計算方法。
» Read Moreまずそもそもの話、 Excel のチェックボックスのチェック状況を特定のセルにリンクして記録する機能(Cell link)があらかじめ備わっているので、それを使うべき。 そうすれば、このエントリーで書いているようなことを行なわなくても普通にPOIとか node.js の xlsx 系ライブラリで難なくその値を読むことができます。
» Read MoreMS Excel で 空の行を詰めて別の列に表示する方法 で filter 関数が素敵というエントリーを書いたところですが、 Google Spreadsheet でも普通に filter 関数使えました。 filter 関数を使いたい、そして業務などで MS Excel 縛りがない場合は、 Google Spreadsheet を使いましょう。
» Read MoreたとえばB列にポケモンの名前が入っているとする。 ただし、途中に空白行があるので、そこは詰めてD列に表示するにはどうしたらよいか?という問題。
この問題の回答を検索してみるとこれらしい。
配列数式と index, small, row などの関数を組み合わせることで実現できるらしい。 なるほどわからん。
» Read More