我试图从Excel文件中获取日期字段,但是日期是以#34; 42373"等常规格式出现的,我尝试了所有内容,例如转换为double然后转换为datetime。我找不到任何代码来帮助我,我使用业务系统来做到这一点..这就是为什么我在这里找到的常规代码无法工作
我想得到那个" 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;
}
}
WORKS
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(Periodo).ToString("MMM");
答案 0 :(得分:0)
使用DateTime.FromOADate(value).ToString("MMM")
答案 1 :(得分:0)
知道了,谢谢!
string Periodo = excelTable[Header2.Period].get_Offset(1,0).StringValue();
string b = Periodo;
double d = double.Parse(b);
DateTime conv = DateTime.FromOADate(d);
var Bingo = conv.ToString("MMM-yyyy");