C# Microsoft.Office.Interop.Excel读取excel中的日期问题

在做网页时要做一个读入客户端的EXCEL文档到网页的GridView中显示并导入数据库,导入和存储到数据库的功能已经用Microsoft.Office.Interop.E... 在做网页时要做一个读入客户端的EXCEL文档到网页的GridView中显示并导入数据库,导入和存储到数据库的功能已经用Microsoft.Office.Interop.Excel库实现了,但是在读入的时候有些问题不知道怎么解决

在Excel中输入类似2009-01-02这种日期格式时,Excel自动把这种格式的日期转换成1月2日这种格式,年份没了点那个单元格后在上面的地方有显示2009/1/2这样,当时没管那么多,直接导入到网页的GridView中,问题就来了。导入日期那一列的时候,在GridView里显示的是39815类似的一些数字,都不是原来的日期。一下是我读取Excel的程序
Excel.Application appExcel = null;
Excel.Workbook workbook = null;
Excel.Sheets sheets = null;
try
{
appExcel = new Excel.Application();
appExcel.Workbooks.Open(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
workbook = appExcel.Workbooks[1];
sheets = workbook.Worksheets;
int sheetCount = sheets.Count;
for (int j = 1; j <= sheetCount; j++)
{
Excel._Worksheet _worksheet = (Excel._Worksheet)sheets.get_Item(j);
int row = _worksheet.UsedRange.Rows.Count;
for (int i = beginLine; i <= row; i++)
{
Excel.Range myRange = _worksheet.get_Range(colRange[0] + i.ToString(), colRange[1] + i.ToString());
object returnvalue= myRange.Text;
Array myArray = (Array)myRange.Cells.Value2;
string[] strArray = ConvertArrayToString(myArray);
int k = 0;
DataRow dr = dt.NewRow();
foreach (string h in header)
{
dr[h] = strArray[k++];
}
dt.Rows.Add(dr);
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(_worksheet);
}
ds.Tables.Add(dt);

我用的是myRange.Cells.Value2来访问Excel单元格中的值,读取含有日期的单元格时导入就不正常,在网上找了下,好像说不要读单元格的Value,读它的Text,我读Text了,可是什么东西都没。又看到有些资料说Value2是针对数字的,Value属性是值,应该访问Value属性,在msdn上看了下Range的属性列表也有这个Value字段,可是我把代码改成myRange.Cells.Value编译又报错,自动提示的时候只有Value2没有Value,这个问题摆在这一直解决不了。。。大家帮帮忙
展开
 我来答
光子炮
2009-10-09 · TA获得超过591个赞
知道小有建树答主
回答量:287
采纳率:100%
帮助的人:356万
展开全部
1.DateTime dt = DateTime.FromOADate(39815.0);
2.应该用Range.Value2属性来访问单元格的值,不要用Text属性。
3.Range没有Value属性,有Value属性的是Microsoft.Office.Tools.Excel.NamedRange类。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式