如何从Excel文件中读取C#中的未来date?

string filePath = openFileDialog1.FileName; string extension = Path.GetExtension(filePath); string header = rbHeaderYes.Checked ? "YES" : "NO"; string conStr, sheetName; conStr = string.Empty; switch (extension) { case ".xls": //Excel 97-03 conStr = string.Format(Excel03ConString, filePath, header); break; case ".xlsx": //Excel 07 conStr = string.Format(Excel07ConString, filePath, header); break; } //Get the name of the First Sheet. using (OleDbConnection con = new OleDbConnection(conStr)) { using (OleDbCommand cmd = new OleDbCommand()) { cmd.Connection = con; con.Open(); DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); con.Close(); } } //Read Data from the First Sheet. using (OleDbConnection con = new OleDbConnection(conStr)) { using (OleDbCommand cmd = new OleDbCommand()) { using (OleDbDataAdapter oda = new OleDbDataAdapter()) { DataTable dt = new DataTable(); cmd.CommandText = "SELECT * From [" + sheetName + "]"; // cmd.CommandText = "SELECT * From "; cmd.Connection = con; con.Open(); oda.SelectCommand = cmd; oda.Fill(dt); //Populate DataGridView. dataGridView1.DataSource = dt; con.Close(); } } } 

这是我的excel文件.. 在这里输入图像说明

我得到的是 在这里输入图像说明

在阅读excel表格时,问题不在于阅读当年有31天的未来date。 就像在输出上显示一样。

我花了整整一天的时间。 我空了。 不知道什么问题正在发生?

任何帮助表示赞赏。

.Net没有尼泊尔日历的实现,你可以在System.Globalization的文档中看到。

但有一个nuget包,似乎运作良好。 https://www.nuget.org/packages/NepaliDateConverter/

实现细节可以在github页面上findhttps://github.com/janaks09/NepaliDateConverter

安装这个软件包后,你可以从英文转换成尼泊尔,反之亦然。

来自github页面的例子:

 var convertedRawNepaliDate = new DateConverter().EngToNep(1993, 9, 30); //English To Nepali date //Separete properties for Year Month and Day. var convertedNepaliDate = DateTime.Parse(convertedRawNepaliDate.ConvertedDate.Year.ToString() + "-" + convertedRawNepaliDate.ConvertedDate.Month.ToString() + "-" + convertedRawNepaliDate.ConvertedDate.Day.ToString()); var eqNepaliDay = convertedRawNepaliDate.ConvertedDayOfWeek; //Gives Nepali Day //Nepali to english var convertedRawEnglishDate = new DateConverter().NepToEng(2050, 06, 14); var convertedNepaliDate = DateTime.Parse(convertedRawEnglishDate.ConvertedDate.Year.ToString() + "-" + convertedRawEnglishDate.ConvertedDate.Month.ToString() + "-" + convertedRawEnglishDate.ConvertedDate.Day.ToString()); var eqEnglishDay = convertedRawEnglishDate.ConvertedDayOfWeek; //Gives English Day