3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.Net,OpenOffice)Calcでは通貨の円記号が全角になる。

OpenOffice Calcでコピーしたセル値をDataGridViewに貼りつける部分をコーディングしてました。

Calc側のセルの書式設定が通貨になってたんで、プログラム側でint型にキャストするように下記のようなコードを書いてました。

CultureInfo cul = CultureInfo.CurrentCulture;

NumberStyles style = NumberStyles.AllowCurrencySymbol |

NumberStyles.AllowLeadingSign |

NumberStyles.AllowThousands;

int pay;

if (int.TryParse(vals[i], style, cul, out pay))

{

//DataGridViewセルに貼り付け

DataGridView1[ 0 , 0].Value = pay;

}

しかし、TryParseでエラーとなります。

調べてみると、Calcの通貨記号(¥)が全角となってました。

強制的にCalcを半角にすると、書式がおかしくなります。

Excelは半角の記号なんですけどね。。

とりあえず、全角¥を置換するようにしました。

参考:

(.Net)DataGridViewのセル入力チェック(CellValidating)でハマる が TryPerse で解決 通貨書式文字列をintに変換する方法です。

dobon:DataGridViewで選択されたセルをクリップボードにコピーできるようにする クリップボードの内容をDataGridViewに貼り付ける方法です。