Visual Studio でデバッグしようとした時、「Files は無効な値」という文字化けしたメッセージが出ることがある。
その場合、プロジェクトフォルダにある「obj」フォルダを削除すれば解消する。
ソリューションエクスプローラーの、対象プロジェクトで右クリックし、「エクスプローラーでフォルダーを開く」を選ぶと、すぐに対象のプロジェクトフォルダが開けるので便利だ。
Visual Studio でデバッグしようとした時、「Files は無効な値」という文字化けしたメッセージが出ることがある。
その場合、プロジェクトフォルダにある「obj」フォルダを削除すれば解消する。
ソリューションエクスプローラーの、対象プロジェクトで右クリックし、「エクスプローラーでフォルダーを開く」を選ぶと、すぐに対象のプロジェクトフォルダが開けるので便利だ。
Excel の [ セルの書式設定 ] - [ 文字の制御 ] にある、「縮小して全体を表示する」ができない(チェックできない)ことがあります。
以下の設定の場合、チェックできません。
こちらも、以下の設定の場合、チェックできません。
文字の制御が「折り返して全体を表示する」になっていると、チェックできません。
.NET から Excel ファイルや PDF ファイルを出力する要件があった場合、どのライブラリを使えば良いのか悩むところです。
もはや太古の遺産である COM を使った方法。
COM(アンマネージド)なので、実装がクソ(解放し忘れ)だと、メモリリークが発生します。
そもそも Excel がインストールされていないと使えません。
この方法は、今さら使うことはないでしょう。
いきなり余談ですが、.xlsx ファイルの最期の「x」は、XML です。xlsx の中身はオープン規格の XML なのです。
で、Excel 2007 以降の .xlsx ファイルを生成するために、オープンソースライブラリを使いたい場合は、こちらになると思います。(ライセンスは MIT)
.NET Standard 対応。
https://github.com/closedxml/closedxml
Java ライブラリの .NET 移植版。
古い .xls ファイルも要件に入っている場合は、こちらになります。(ライセンスは Apache 2.0)
長年の実績があるため、枯れたライブラリと言えるでしょう。
.NET Standard 対応。
https://github.com/nissl-lab/npoi
GrapeCity のライブラリ。API ライブラリで、高速に動作するとのこと。
.NET 5 にも対応し、クロスプラットフォーム対応。
有償ですが、商用利用でサポートが必要な場合は選択肢に入るでしょう。
https://www.grapecity.co.jp/developer/diodocs
ちなみに、複雑な帳票ではなく、一覧データを出力するだけであれば、同じくグレープシティから出ている Wijmo に収録されている FlexGrid にも Excel 出力機能があります。
こちらは Web だけに対応します。
https://www.grapecity.co.jp/developer/wijmo/flexgrid
Advance Software から出ている、Excel のインストールなしに Excel ファイルが出力可能な有償ライブラリ。昔からある定番です。
ただし、ASP.NET Web フォームまでの対応です。(サーバー側で Excel を作るだけなら問題ないですが、サポート対象外です)ASP.NET MVC で使いたい場合、同社の「VB-Report」が対応しています。
難点としては、.NET Framework までしか対応していません。
枯れたライブラリと言えるでしょう。
たいていの場合、Excel 出力は、業務アプリで帳票を出したいというニーズがあるということでしょう。であれば、なんらかのサポートがあるライブラリが選定条件になると思います。
……そうすると、GrapeCity か、Advance Software くらいしかありませんね。
顧客に説明できるなら、ClosedXML もありかな、と思います
趣味だったら、どれでも好きなものを。
Microsoft.Office.Interop.Excel 以外で。
いくつものソースをモニタに接続している場合、今 ON にしているデバイスの映像を自動的に表示してほしいものです。
私は EIZO の EV2080 を使っているのですが、なぜかそうなっていませんでした。
設定メニューを表示させても、それらしき設定はないのですが、実は「管理用設定メニュー」というものがあるようです。
モニタ前面に、いくつかボタンがあると思いますが、一番左のボタンと電源ボタンを長押しします(モニタの電源が付いてもそのまま)。
すると、写真のようなメニューが現れます。
Auto Input Detection
この設定を ON にすると、今 電源が入っているデバイスを自動的に探してくれ、それを表示してくれます。
これでいちいち手で入力ソースを切り替える手間が省けました。
……もしかしたらマニュアルをちゃんと読めば書いてあったのかも?