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に貼り付ける方法です。