0
に進配列に小数のオブジェクトを変換するために、私は相互運用機能を使用してExcelで名前付き範囲で読んでから来て、それはこのようになりますC#でobject
を持っている:どのようにC#の
myObject =
oName.RefersToRange.Value {object[1..1, 1..5]}
((object[,])oName.RefersToRange.Value)[1, 1] 10
((object[,])oName.RefersToRange.Value)[1, 2] 20
((object[,])oName.RefersToRange.Value)[1, 3] 30
((object[,])oName.RefersToRange.Value)[1, 4] 40
((object[,])oName.RefersToRange.Value)[1, 5] 50
私は考え私は、次のコードを使用してこれをやろうとしている
myDecimal = {[10.0], [20.0], [30.0], [40.0], [50.0]}
:
decimal[,] myDecimal = (decimal[,])myObject
0123のよう
Decimal
にこれを変換したいです私も試してみました
:
decimal[,] myDecimal = Convert.ToDecimal(myObject)
や他のもののホストを、のどれも本当に働いていないと、すべては私にエラーを与える傾向があります。
これを行う別の方法は、2つのディメンションを反復し、Decimal
に変換するか、値を0.0に設定するメソッドを作成することです。それは大丈夫でしょうが、私はそれを働かせるように見えません。ここで私が持っているものだ(ところで - 私はこれがずさんである知っているだけで、この問題を解決するには、私の無益さを実証する):
public static decimal[,] Convert2dObjectTo2dDecimalArray(object obj)
{
decimal[,] result = default(decimal[,]);
for (int i = 0; i <= obj.SomeUnknownMethodThatCountsElements(0); i++)
{
for (int j = 0; i <= obj.SomeUnknownMethodThatCountsElements(1); j++)
{
try
{
result[i, j] = Convert.ToDecimal(obj[i, j]);
}
catch (Exception)
{
result[i, j] = new decimal(0.0);
}
}
}
return result;
}
すべてのヘルプは大歓迎です。
私は上の例が実際には1次元のデータセットであることを知っていますが、2次元で作業する必要があります。例の使用例を短くしています。
あなたがmyObjectという – Sorceri
@Sorceriを宣言する方法を示して行うことができるはず - 私はちょうどコードを短縮しています、myObjectという、実際に 'Microsoft.Office.Interop.Excel.Nameです。 RefersToRange.Value [オブジェクト] ' – gotmike