2016-03-29 6 views
0

次のExcelスプレッドシートから数字を解析する際に問題が発生しています。Excel Interlop ValueとText対Value2

Excel

コード:

var curQOH = toolkit.ExcelWorksheet.Cells[i, 28] as Range; 
         var curQAV = toolkit.ExcelWorksheet.Cells[i, 29] as Range; 
         if (!curQOH.Text.Contains("(")) 
          Int32.TryParse(curQOH.Text, out lastQOH); 
         else 
          Int32.TryParse(curQOH.Value as string, out lastQOH); 
         if (!curQAV.Text.Contains("(")) 
          Int32.TryParse(curQAV.Text, out lastQAV); 
         else 
          Int32.TryParse(curQAV.Value as string, out lastQAV); 

上記のコードだけで罰金正の数を解析します。問題ありません。しかし、それは負の数を解析できないようです。

私の知るところでは、テキストは私に出力として(10)を得るために視聴者が見るものを私に与えると仮定します。値は正しい数値を返しますが、文字列にキャストした後は解析できないようです。 (私は文字列として値を保存したり、int型にキャストカント、なぜこの問題、Excel cell value as string won't store as string

+0

を使用し始めました。使用するのがはるかにいいです。 –

+0

私はいつも 'Value2'を使っていましたが、これを' string'に変換して解析します。しかし(もし私があなたのコードを正しく読んでいるなら) '@ '(10)' 'を' int'にパースしようとします。これは失敗します。 –

+0

@StephenRoss私はそれが持っているかどうかをチェックしています(文字がそうですから、-10を与えるべき値を行い、次にintに解析しています)。 –

答えて

0

は、Excel Interlopを使用して立ち止まったし、私はむしろ相互運用よりもEPPlusオープンソースのライブラリを使用することをお勧めしますOpenXMLのExcelのライブラリに

関連する問題