我在C#中使用OLEDBConnection读取Excel文件。
我想根据Excel文件的文化更改当前的线程文化,以便我可以使用特定于文化的格式获取日期。我使用了以下代码,但它无法正常工作。它仍然将日期转换为我们的英文格式。如果我从Control Panel --> Region and Language
更改格式,那么它可以工作:
我的代码:
public static System.Data.DataTable GetWorksheet(string worksheetName, string connectionString)
{
try
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("cs-CZ", true);
Thread.CurrentThread.CurrentCulture.ClearCachedData();
OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(
//"select * from [" + worksheetName + "]", con);
"select * from [" + worksheetName + "$]", con);
con.Open();
System.Data.DataSet excelDataSet = new DataSet();
cmd.Fill(excelDataSet);
con.Close();
con.Dispose();
System.Data.DataTable dt = excelDataSet.Tables[0];
if (excelDataSet != null)
excelDataSet.Dispose();
return dt;
}
catch (Exception e)
{
throw e;
}
}
答案 0 :(得分:0)
查看Microsoft的示例here。他们使用:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");