2014-02-05 45 views
0

我在Excel中格式化日期时遇到问题。Excel:如何应用基于使用c#的区域设置的日期格式?

我想格式化日期格式为dd/MM/yyyy。

如果我在英语中使用Excel,它会正确导出,但如果我在西班牙语中使用Excel,则导出不正确。

例如15/02/yyyy而不是15/02/2013

我必须改变格式为西班牙语的Excel格式dd/MM/aaaa以正常工作。

是否有一种形式使用标准方式来独立于Excel语言使用相同的语法?

在此先感谢。

谈到我使用的是C#:

我使用的是formmated的DataGridView中的列对应日期:

dgvData.Columns[x].DefaultCellStyle.Format = "dd/MM/yyyy"; 

,然后使用类的Microsoft.Office.Interop.Excel我比较格式如下:

Range.EntireColumn.NumberFormat = dgvData.Columns[x].DefaultCellStyle.Format; 

谢谢。 。

+2

这标记/用C#标题 - 我不明白为什么虽然 - 是否有任何相关的代码? – Jay

+0

您可以导出为字符串还是日期序列号(让接收的Excel工作表处理格式)? – pnuts

回答

1

您可以从注册表(与其他类型的格式需要陪读的“短日期”格式

一小段代码将允许访问读取注册表:

Option Explicit 

Function RegKeyRead(i_RegKey As String) As String 
Dim myWS As Object 

    On Error Resume Next 
    'access Windows scripting 
    Set myWS = CreateObject("WScript.Shell") 
    'read key from registry 
    RegKeyRead = myWS.RegRead(i_RegKey) 
End Function 

那么你可以调用这个函数与相应的键来获得所需要的格式:

LclDteFormat = _ 
    RegKeyRead("HKEY_CURRENT_USER\Control Panel\International\sShortDate") 

其他格式的国际部分提供包括:

  • sLongDate
  • sShortTime
  • sTimeFormat
  • S1159和s2359 (AM和PM设置)
相关问题