Excel 파일에서 날짜 필드를 가져 오려고하는데 날짜가 "42373"과 같은 일반 형식으로되어 있으므로 double로 변환하는 것과 같은 모든 작업을 시도했습니다. datetime으로. 나는 나를 돕기 위해 어떤 코드도 찾을 수 없다. 나는 그렇게하기 위해 비즈니스 시스템을 사용하고있다. 그래서 나는 정규 코드가 내가 일하는 것을 찾지 못하는 이유가 무엇인지를 알고있다.OADate를 유효한 DateTime으로 변환하십시오. Microsoft.Office.Interop.Excel
나는 "42373"을 유효하게하고 포맷을 원한다. 날짜 (2016-04-01) 그리고 그것들로부터 "MMM"을 얻습니다.
obs : CSharp Ineterop을 사용합니다.
using System;
using System.Text;
using System.Reflection;
using System.Collections;
using System.Globalization;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Microsoft.Office.Interop.Excel;
public class Macro : MacroBase {
private enum Header1 {
[Name("ACCOUNT NUMBER")]
Begin,
}
private enum Header2 {
[Name("PERIOD COVERED")]
Period,
}
protected override bool Run() {
var RSheet = (Worksheet)TargetWorkbook.Worksheets[1];
if (RSheet == null)
return false;
var excelTable = new ExcelTable<Header2>(){ CacheHeaders = true };
if (excelTable.Initialize(RSheet) == false)
return false;
var excelTable1 = new ExcelTable<Header1>(){ CacheHeaders = true };
if (excelTable1.Initialize(RSheet) == false)
return false;
var Periodo = excelTable[Header2.Period].get_Offset(1,0).Value;
excelTable1[Header1.Begin].get_Offset(2,0).Value2 = Periodo;
return true;
}
}
는
string Periodo = excelTable[Header2.Period].get_Offset(1,0).Value.ToString();
excelTable1[Header1.Begin].get_Offset(2,0).Value = DateTime.FromOADate(42373).ToString("MMM");
이 DateTime.FromOADate(value).ToString("MMM")
안녕하세요. 답변 해 주셔서 감사합니다. 나는 왜 내 변수 "Periodo"의 가치가 작동하지 않을지 모르겠다. 나는 Excel MM/dd/yyyy에서 날짜를 얻었고 42373과 같은 일반 형식을 얻는다. 그래서 작동해야한다. double로 변환하려고 시도했다. 하지만 성공이 없습니다 –
어떻게 그것을 double @ FranciscoLuizBrumPinto로 바꾸고 있습니까? –