2016-04-05 19 views
0

Excelからデータを読み込むためにMicrosoft.Office.Interop.Excelを使用しています。C# - フォーマットなしでExcelから正確なデータを取得

Application excel = new Application(); 
Workbook wb = excel.Workbooks.Open("/sample.xlsx"); 
Worksheet sheet = wb.Worksheets["Table 1"]; 

Range range = (Range)sheet.get_Range("A" + 1, "A" + 1); 
String value = Convert.ToString(range.Cells[1].Value); 

列A1 = "01" と、私の出力は "1"

、この細胞からフォーマットせずに生データを取得する方法(私の予想出力が "01" ですか)?日付の書式が 'MM/dd/yy'の列についても同様です。

+0

エクセルで "text"と入力するようにセルをフォーマットすると、自分のコードが動作します。 –

答えて

0

私はこの問題は読者にはないと思っています。あなたのExcelシートには、数値としてフォーマットされた列が必要です。列をテキスト列に書式設定してください。可能なら。

、日付時刻としてフォーマット列に対して、あなたが日付を解析し、あなたが望むようにあなたがテキストを使用する必要がhttps://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

enter image description here

1

を参照し、それをフォーマットすることができます。

String value = Convert.ToString(range.Cells[1].Text); 

.Textをセルの画面に何が表示されているかを表す文字列を返します。あなたは####

.Value2はあなたの細胞の基本的な価値を与え得ることができるので、.textセクションを使用すると、.Value

(数(ダブル)またはブール値、空の文字列、エラーの可能性があり)、通常は悪い考えですセルが通貨または日付として書式設定された場合を除いて、VBA通貨(小数点以下を切り捨てることがある)またはVBA日付を与える以外は、.Value2と同じです。

関連する問題