如何更改读取Excel的c#应用程序的日期格式文化

时间:2013-09-26 22:00:31

标签: c# excel locale cultureinfo culture

我在C#中使用OLEDBConnection读取Excel文件。

我想根据Excel文件的文化更改当前的线程文化,以便我可以使用特定于文化的格式获取日期。我使用了以下代码,但它无法正常工作。它仍然将日期转换为我们的英文格式。如果我从Control Panel --> Region and Language更改格式,那么它可以工作:

See screen shot

我的代码:

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;
   }
}

1 个答案:

答案 0 :(得分:0)

查看Microsoft的示例here。他们使用:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");