0

我正在使用 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;
   }
}
4

1 回答 1

0

在此处查看Microsoft的示例。他们使用:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
于 2013-09-26T22:20:52.313 回答