Excelにdecimal型数値は貼り付けられない、らしい
VB.NETをはじめとする.NETアプリケーションから、Excelにデータを出力する場面は多いことだろう。そこでちょっとハマったので報告。
Excelにdecimal型数値は貼り付けられない、らしい
私の場合、Excelの範囲(Range)に対してVB.NETの配列を貼り付けるところでハマった。
下記コードはエラーになる。
1 2 3 4 5 6 7 8 |
Dim xlApp As New Application() xlApp.Visible = True Dim wb As Workbook = xlApp.Workbooks.Open("d:\temp\temp.xlsx") Dim ChouhyouSheet As Worksheet = wb.Sheets.Add() Dim DSArr(10, 10) As Decimal 'DSArrに色々データを入れる Dim BorderRange1 As Range = ChouhyouSheet.Range("A1:J10") BorderRange1.Value = DSArr '貼り付け ここでエラーになる |
エラーメッセージは下記のような感じだ。
ArgumentExceptionはハンドルされませんでした。
値が有効な範囲にありません。
私の場合、これの原因は「decimal型をExcelに貼り付けようとした」ことであった。
どうも、Excelへは、.NETのdecimal型数値は貼り付けられないらしい。
上記の配列DSArrのdecimalをdoubleにしたら解決した。