エクセルでの作業はいかがでしたか
decimal LTLPrice = Decimal.Parse(sheet.get_Range("H27").Value.ToString());
decimal mathLTLPrice = Math.Round(LTLPrice, 2);
sheet.get_Range("C29").Value = SumToTextFormatProvider.SumToText(mathLTLPrice, "Lt", "ct");
OleDb での私の想像の中でどのようにあるべきか
myCommand = new OleDbCommand("SELECT * FROM [Sheet1$H27:H27]", MyConnection);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
decimal LTLPrice = Decimal.Parse(myReader.GetString(0));
decimal mathLTLPrice = Math.Round(LTLPrice, 2);
myCommand = new OleDbCommand("UPDATE [Sheet1$C29:C29] SET F1='" + SumToTextFormatProvider.SumToText(mathLTLPrice, "Lt", "ct") + "'", MyConnection);
myCommand.ExecuteNonQuery();
}
myReader.Close();
どうですか
System.InvalidCastException: Specified cast is not valid.
at System.Data.OleDb.ColumnBinding.ValueString()
at System.Data.OleDb.OleDbDataReader.GetString(Int32 ordinal)
at Trains.invoiceForm.invoiceGenerateXls_Click(Object sender, EventArgs e) in D:\Users\Nullified\Documents\Visual Studio 2010\Projects\Trains\Trains\invoiceForm.cs:line 592
エラーはこの行にあります
decimal LTLPrice = Decimal.Parse(myReader.GetString(0));
私は GetInt32 / GetDecimal を試しましたが、結果はありませんでした。:(
アップデート
GetDouble を使用するとエラーは発生しませんが、myReader は 0 を返します。Excel では「3,49」です。