C# 获取Excel一个单元格的值,如果这个值为时间格式,获取出来的值怎么会是文本格式?求高手
如图,Excel中显示的是日期格式
但我读取到DataGridView中时,这个值却发生了变化
经过检查我发现这个问题是出在这里,如图
现在求大侠帮助了,怎么才能让日期值正确的显示到DataGridView中
DataSet ds = GetWorkbook(Application.StartupPath + @"\App_Data\Book1.xls");public static DataSet GetWorkbook(string filename) { DataSet ds = new DataSet(); Excel.Application app = new Excel.Application(); //初始化Excel对象 app.Visible = false; app.DisplayAlerts = false; object missing = System.Reflection.Missing.Value; Excel.Workbook wb;// = app.Workbooks.Open(filename, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); try { wb = app.Workbooks.Open(filename, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); } catch (Exception ex) { MessageBox.Show(ex.ToString()); throw; } foreach (Excel.Worksheet ws in wb.Sheets) { ds.Tables.Add(GetWorksheet(ws)); } app.Workbooks.Close(); app.Quit(); return ds; }public static DataTable GetWorksheet(Excel.Worksheet ws) { DataTable dt = new DataTable(); dt.TableName = ws.Name; int row = ws.UsedRange.Rows.Count + 1; int col = ws.UsedRange.Columns.Count + 1; for (int c = 1; c < col; c++) { dt.Columns.Add("F" + c); } for (int r = 1; r < row; r++) { DataRow newRow = dt.NewRow(); for (int c = 1; c < col; c++) { newRow[c - 1] = ((Excel.Range)ws.Cells[r, c]).Value2; //问题是不是出在这里,请问怎么解决呢 } dt.Rows.Add(newRow); } return dt; }