2

私はExcel相互運用ライブラリを使用して、c#.netを使用してExcelファイルから値を取得しています。

現在、すべての値が一般形式またはテキスト形式になっているという問題に直面しています。

以下のコードを使用しました。

        string fileName = Directory.GetCurrentDirectory() + "\\123.xlsx";
        Excel.Application xlApp;
        Excel.Workbook xlWorkbook;
        xlApp = new Excel.Application();
        xlWorkbook = xlApp.Workbooks.Open(fileName);
        Excel._Worksheet xlWorksheet = (Excel._Worksheet)xlApp.Workbooks[1].Worksheets[1];
        Excel.Range excelCell = xlWorksheet.UsedRange;
        Object[,] values = (Object[,])excelCell.Value;

例: ここに画像の説明を入力

I am getting '41369' instead of 4/5/2013 from B4 cell and 100 instead of 100.00 from A2 call.
4

2 に答える 2

1

次のコードを使用できます。

CellVal = objWorkbook.WorkSheets(1).Cells(6, 1).Value
MsgBox CellVal

これにより、正しい日付形式が返されます。

于 2013-05-24T03:57:52.987 に答える
0

取得する日付の数値は、1900 年 1 月 1 日からの日数です。

あなたが使用するあなたの日付のために

int NumberOfDaysAfter19000101 = 41369;
DateTime dt = new DateTime(1900, 1, 1).AddDays(NumberOfDaysAfter19000101 - 2);

NumberOfDaysAfter19000101 から 2 を引く理由について、このスレッドで回答しました。 Access と SQL Server の日付の計算方法が異なる

于 2013-05-24T03:49:02.353 に答える