C# Tostring() で数値の末尾にあるゼロを削除する

C# の ToString("g29") で末尾の 0 を削除する方法

小数点が含まれる数値を DB から取得し、表示の際に末尾の 0 を削除したい場合があります。そんな時に便利なのが、ToString を用いた書き方です。

ToString("g29")

 decimal d = 1.500m;

 // 1.500 と表示
 Console.WriteLine(d.ToString());
 // 1.5 と表示
 Console.WriteLine(d.ToString("g29"));

decimal 型の数値を ToString() すると、そのまま表示されます。
末尾にあるゼロを削除するには、ToString に引数として "g29" を指定します。
ちなみに、g は大文字で "G29" でも OK です。

ページを開く際に自動的にシークレットモードにする

Auto-Incognito Filter

Hidden : Auto-Incognito Filter

Hidden : Auto-Incognito Filter

特定のサイトを開く際に、自動的にシークレットモードで開いてくれる拡張機能です。

Hidden : Auto-Incognito Filter

URL を入力して、Add Filter ボタンを押すだけ。
登録した URL を開く際は、自動的にシークレットウィンドウが立ち上がって開いてくれます。

これで○○なサイトを開くのも安心ですね(笑)。

リーディングリストが邪魔なので表示を消した

Chrome のリーディングリスト

Google Chrome のブックマークツールバーに、「リーディングリスト」が表示されるようになりました。

しかし、表示位置が邪魔すぎる。。
ブックマークツールバーの「>>」を押すとき、いちいちリーディングリストを避けなきゃならなくなりました。

うざいので、Chrome の設定画面から、リーディングリストを消し去ります。

chrome://flags/#read-later

このアドレスをコピーして、アドレスバーに貼り付けて Enter キーを押します。

Disabled Reading List

Reading List を Disabled に変更して、Chrome を再起動します。

秀丸やサクラエディタ的な Mac 用テキストエディタ

まず、はじめに。
Windows で(人によっては)何十年も慣れ親しんだ、シンプルなテキストエディタの筆頭である「秀丸」や「サクラエディタ」は、残念ながら Mac にはありません。
諦めましょう。

しかし、Mac にも、
ちょっとテキストを修正したい、ちょっと HTML を編集したい、ちょっとソースを直したい。そんな希望を叶えてくれるテキストエディタがあります。

Windows ライクな mi(えむあい)

Mac 用テキストエディタ mi

mi
http://www.mimikaki.net/

秀丸やサクラエディタとの淡い思い出を忘れられないあなたなら、
mi(えむあい)がオススメです。

多機能、軽い、シンプル。
日本語環境につきものの「円マーク」に対しての配慮もバッチリです。
Mac の円マークキーでバックスラッシュを入力する

タブにも対応しているので、
秀丸やサクラエディタが好きなら、きっと mi も気に入るでしょう。

シンプルさなら CotEditor

Mac 用テキストエディタ ColEditer

CotEditor
https://coteditor.com/

Mac とともに新しい恋をはじめたいあなたなら、CotEditor がおすすめ。
起動すると、文字入力が可能な枠が表示されるだけ。
説明もなく、ちょっと戸惑うくらいです。(ちなみに置換等は Command + F)

設定(command + , )を開くと、タブ表示にもできます。

ColEditer で縦書き設定

そして、なんと縦書きレイアウト可能です。

control ボタンを押しながら CotEditor のタイトルをクリックして、ツールバーをカスタマイズできます。ツールバーに横書きと縦書きを切り替えるボタンがあります。

ColEditer で縦書き表示

Mac で物書きをしているあなたなら、気に入る機能かもしれません。

Mac の円マークキーでバックスラッシュを入力する

Mac で円マークをバックスラッシュに変更したい

Mac の JIS キーボードで、「¥(円)」マークを押すと、「¥」が入力されます。

バックスラッシュを入力したい場合、
option キー + ¥
を押します。

Windows では円マークもバックスラッシュとして扱われる

Windows の場合、円マークもバックスラッシュとして扱われるので、とくに問題になっていませんでしたが、Mac の場合、円マークとバックスラッシュは厳密に区別されているようです。

円マークをバックスラッシュの入力にする

システム環境設定のキーボードを開く

option キーを毎回 押すのがめんどくさい場合、
システム環境設定のキーボードから設定を変更することができます。

¥キーで入力する文字を変更する

入力ソースの中に、「"¥"キーで入力する文字」という項目があるので、
これを「¥」から「\」に変更します。

ちなみに、私は ATOK を使っていますが、
この設定を行うと、ATOK でも「¥」が「\」に変更されました。

画面キャプチャ用にChromeの拡張機能でブラウザサイズを指定する

Chrome 拡張機能・Window Resizer

操作マニュアル作成や、テストエビデンスの取得等、ブラウザサイズを固定したい場合があります。ブラウザのサイズを変更するだけでよければ、Chrome に便利な拡張機能があります。

Chrome 拡張機能 WindowResizer

Chrome 拡張機能・Window Resizer

Window Resizer は、Chrome のウィンドウサイズを指定できる拡張機能です。

よく使いそうなウィンドウサイズは、予め登録されていますので、選択するだけです。直接画面サイズを入力することもできますし、歯車のアイコンから、自分の好みのサイズを登録することもできます。

簡単です。

Mac でアプリやファイルを開くメインディスプレイを変更する

Mac のメインディスプレイを変更する

私は MacBook を別の大きなディスプレイをつなげて、マルチディスプレイ環境で使っています。
ただ、アプリをはじめ、画像や PDF ファイルを開く時、いつも MacBook の方で開いてしまっていたので、いちいち大きなディスプレイに移動させる事が面倒でした。

マルチディスプレイのメインのディスプレイ

メインディスプレイという概念があります。その名の通り、複数のディスプレイがあった場合、メインとなるディスプレイの設定のこと。
Finder でファイルを開く時は、メインディスプレイで開く仕様のようです。

変更方法は、以下の通り。

Mac システム環境設定
  1. 「システム環境設定」を開き、「ディスプレイ」を開きます。
  2. 接続されているディスプレイが表示されます。
    ディスプレイの上に、「細長い四角いバー」が 付いているのがメインディスプレイです。これをマウスで移動させます。(ちょっと分かりづらいですね。。)
    ちなみに、ディスプレイの位置も移動できます。これは Windows でも同じですね。

Excel で行の高さがダブルクリックで自動調整できない

Excel で、行番号をダブルクリックしても、
自動的に行の高さが調整されないことがあります。

セルの結合をしていると、セルの高さを自動調整できない

この画像の例ですと、12 行目は C 列と D 列を結合しています。
結合しているセルというのは、高さの自動調整ができないので、E 列の行の高さで自動調整されてしまうのです。

解決策としては、セル結合を止めるか、セルの高さを手動で指定(ホーム - セル - 書式 - 行の高さ)してしまうしかないです。

セルの結合は場合によっては便利ですが、ほどほどにしましょう。

桁端部の読み方

桁端=けたたん

橋梁の部位。

文字通り、桁の端。桁と桁のつなぎ目の部分。
つなぎ目=ガタタン=ケタタン。(伸縮装置とは違う)
漏水や土砂の堆積により腐食や劣化しやすい。

「Files は無効な値」が出てデバッグできない時は「obj」フォルダを削除する

Visual Studio でデバッグしようとした時、「Files は無効な値」という文字化けしたメッセージが出ることがある。

その場合、プロジェクトフォルダにある「obj」フォルダを削除すれば解消する。

ソリューションエクスプローラーの、対象プロジェクトで右クリックし、「エクスプローラーでフォルダーを開く」を選ぶと、すぐに対象のプロジェクトフォルダが開けるので便利だ。

Excel で「縮小して全体を設定する」がチェックできない

縮小して全体を表示するができない

Excel の [ セルの書式設定 ] - [ 文字の制御 ] にある、「縮小して全体を表示する」ができない(チェックできない)ことがあります。

縮小して全体を表示する方法

文字の配置、文字の制御を見直す

「文字の配置」を見直す

以下の設定の場合、チェックできません。

  • 横位置
  • 繰り返し
  • 両端揃え
  • 均等割り付け(インデント)

「縦位置」を見直す

こちらも、以下の設定の場合、チェックできません。

  • 両端揃え
  • 均等割り付け

「文字の制御」を見直す

文字の制御が「折り返して全体を表示する」になっていると、チェックできません。

.NET 用 Execl 出力ライブラリのまとめ(2021年版)

.NET 用 Execl 出力ライブラリのまとめ

.NET 対応 Excel 出力用ライブラリ

.NET から Excel ファイルや PDF ファイルを出力する要件があった場合、どのライブラリを使えば良いのか悩むところです。

Microsoft.Office.Interop.Excel

もはや太古の遺産である COM を使った方法。
COM(アンマネージド)なので、実装がクソ(解放し忘れ)だと、メモリリークが発生します。
そもそも Excel がインストールされていないと使えません。
この方法は、今さら使うことはないでしょう。

ClosedXML

いきなり余談ですが、.xlsx ファイルの最期の「x」は、XML です。xlsx の中身はオープン規格の XML なのです。

で、Excel 2007 以降の .xlsx ファイルを生成するために、オープンソースライブラリを使いたい場合は、こちらになると思います。(ライセンスは MIT)
.NET Standard 対応。

https://github.com/closedxml/closedxml

npoi

Java ライブラリの .NET 移植版。
古い .xls ファイルも要件に入っている場合は、こちらになります。(ライセンスは Apache 2.0)
長年の実績があるため、枯れたライブラリと言えるでしょう。
.NET Standard 対応。

https://github.com/nissl-lab/npoi

DioDocs

GrapeCity のライブラリ。API ライブラリで、高速に動作するとのこと。
.NET 5 にも対応し、クロスプラットフォーム対応。
有償ですが、商用利用でサポートが必要な場合は選択肢に入るでしょう。

https://www.grapecity.co.jp/developer/diodocs

ちなみに、複雑な帳票ではなく、一覧データを出力するだけであれば、同じくグレープシティから出ている Wijmo に収録されている FlexGrid にも Excel 出力機能があります。
こちらは Web だけに対応します。

https://www.grapecity.co.jp/developer/wijmo/flexgrid

ExcelCreater

Advance Software から出ている、Excel のインストールなしに Excel ファイルが出力可能な有償ライブラリ。昔からある定番です。

ただし、ASP.NET Web フォームまでの対応です。(サーバー側で Excel を作るだけなら問題ないですが、サポート対象外です)ASP.NET MVC で使いたい場合、同社の「VB-Report」が対応しています。

難点としては、.NET Framework までしか対応していません。
枯れたライブラリと言えるでしょう。

https://www.adv.co.jp/

どれを選ぶか?

たいていの場合、Excel 出力は、業務アプリで帳票を出したいというニーズがあるということでしょう。であれば、なんらかのサポートがあるライブラリが選定条件になると思います。

……そうすると、GrapeCity か、Advance Software くらいしかありませんね。
顧客に説明できるなら、ClosedXML もありかな、と思います

趣味だったら、どれでも好きなものを。
Microsoft.Office.Interop.Excel 以外で。

EIZO のモニタで入力信号を自動的に切り替える設定

いくつものソースをモニタに接続している場合、今 ON にしているデバイスの映像を自動的に表示してほしいものです。
私は EIZO の EV2080 を使っているのですが、なぜかそうなっていませんでした。
設定メニューを表示させても、それらしき設定はないのですが、実は「管理用設定メニュー」というものがあるようです。

EIZO モニタの管理用設定メニュー

モニタ前面に、いくつかボタンがあると思いますが、一番左のボタンと電源ボタンを長押しします(モニタの電源が付いてもそのまま)。

すると、写真のようなメニューが現れます。

Auto Input Detection

この設定を ON にすると、今 電源が入っているデバイスを自動的に探してくれ、それを表示してくれます。
これでいちいち手で入力ソースを切り替える手間が省けました。
……もしかしたらマニュアルをちゃんと読めば書いてあったのかも?