ruby から excel いじるライブラリである axlsx で、同じワークブック内のシートのリンクを貼りたかったがうまくいかなかったのでメモ
うまくいかなかった原因は、リンクを
sheet.add_hyperlink :location => "'Next Sheet'!A1", :ref => 'A2', :target => :sheet
という形ではるわけだが、この「location」、なんとキャメルケースに変換される。
これはなかなか気づかない。
生成されるリンクは「不正」とだけ言われてみることがなかなかできなかったからだ。
その後、しばらくホバーしていると情報が得られることが発覚。
さらにしばらく後、リンクがキャメルケースになっていることが発覚。
結構時間を取られた。
ちなみに、以上の原因のため、ワークシートの名前がキャメルケースであれば問題ない。
今回の事案はワークシートはスネークケースだったため、見事にハマった。
(axlsx の issue で見かけたが、なにやらワークシートの名前もキャメルケースにされるらしいのだが一体...)
リンク先のシート名をキャメルケースに変えた。
xlsx ってどうやって読み込むんだろう
普通の xml ではないっぽい(プレーンテキストとして読めなかった)ので、
どうやっていじるのか気になりますね。
あと、emotet...自動実行は脆弱性の温床...