Импорт excel в datatable, а затем gridview, но дата не отображается ?
Всем привет,
У меня есть один файл excel, который я хочу импортировать в Grdiview in asp.net c#.
У меня есть записи в gridview но некоторые даты не отображаются в gridview.
мой код таков.
if (FileUpload1.HasFile) { ddlParty.Enabled = true; } String strConnection = "ConnectionString"; string connectionString = ""; if (FileUpload1.HasFile) { string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); string fileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName); string fileLocation = Server.MapPath("~/App_Data/" + fileName); FileUpload1.SaveAs(fileLocation); if (fileExtension == ".xls") { connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; } else if (fileExtension == ".xlsx") { connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\""; } OleDbConnection con = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.Connection = con; OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd); DataTable dtExcelRecords = new DataTable(); con.Open(); DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString(); cmd.CommandText = "SELECT * FROM [" + getExcelSheetName + "]"; dAdapter.SelectCommand = cmd; dAdapter.Fill(dtExcelRecords); gvExcelFile.DataSource = dtExcelRecords; gvExcelFile.DataBind(); }
Вот моя ссылка на файл Excel
Поэтому, пожалуйста, помогите мне решить мою проблему.
Что я уже пробовал:
Я пробовал код и менял формат даты в файле excel с ячейками формата так много раз и с таким количеством типов. Но решения так и не получил.
Richard MacCutchan
Какие поля не отображаются и каковы их значения в рабочей книге?
Veeshal Mali
PODate и DeliverySchedule эти поля не отображаются, и значения похожи на это "18.08.2016", в котором дата имеет более 12.
Richard MacCutchan
Больше 12 чего? Пожалуйста, предоставьте полную информацию о вашей проблеме.
Richard MacCutchan
Хорошо, я думаю, что знаю, что происходит. В вашей электронной таблице есть некоторые поля даты, которые являются цитируемым текстом, например "18/08/2016"
, включая символы двойной кавычки. Похоже, что OLEDB по какой-то причине игнорирует эти поля. Я посмотрю немного поближе.
Veeshal Mali
Хан Да сэр, когда дата, как 7/7/2017 или 11/8/2017 или 12/8/2017 в excel он будет пикап и показать в виде сетки, но когда дата превышает дату более чем 12, как 13/06/2017 или 18/06/2017 он не будет пикап и показать в gridview