在excel列中使用Microsoft.Office.Interop.Excel在c#中设置数据types如数字,文本和date

我的问题是,我试图将数据types设置为C#中的Excel列,在这种情况下,数据types数字,文本和date。 我正在使用Microsoft.Office.Interop.Excel DLL。 我不知道如何使用C#编程语言将这些格式设置为整个excel列的单元格。

设置范围为文本:

xlYourRange.NumberFormat = "@"; 

你也可以在一个单元格中加上一个撇号值作为文本格式:

 xlYourRange.Value = "'0123456"; 

将范围设置为数字

 xlYourRange.NumberFormat = "0"; 

显然,如果你想设置整个列的格式,那么你的范围就是列。

 xlYourRange = xlWorksheet.get_Range("A1").EntireColumn; 

编辑:

date稍微复杂一点,也取决于你的区域设置:

 // Results in a Date field of "23/5/2011" xlRange.NumberFormat = "DD/MM/YYYY"; xlRange.Value = "23/5/2011"; // Results in a Custom field of "23/5/2011" xlRange.NumberFormat = "DD-MM-YYYY"; xlRange.Value = "23/5/2011"; // Results in a Custom field of "05/23/2011" xlRange.NumberFormat = "MM/DD/YYYY"; xlRange.Value = "5/23/2011"; // Results in a Custom field of "05-23-2011" xlRange.NumberFormat = "MM-DD-YYYY"; xlRange.Value = "5/23/2011"; // Results in a Date field of "23/05/2011" xlRange.NumberFormat = "DD/MM/YYYY"; xlRange.Value = "5/23/2011"; // Results in a Custom field of "23-05-2011" xlRange.NumberFormat = "DD-MM-YYYY"; xlRange.Value = "5/23/2011"; // Results in a Custom field of "23/5/2011" xlRange.NumberFormat = "MM/DD/YYYY"; xlRange.Value = "23/5/2011"; // Results in a Custom field of "23/5/2011" xlRange.NumberFormat = "MM-DD-YYYY"; xlRange.Value = "23/5/2011"; 

有一个问题我回答了这个问题。

最值得注意的是,这个人在他的回答中使用的数据types是:

 private struct ExcelDataTypes { public const string NUMBER = "NUMBER"; public const string DATETIME = "DATETIME"; public const string TEXT = "TEXT"; // also works with "STRING". } 

看起来熟悉?

如果你有兴趣,这里是链接:

将DataTable插入Excel使用Microsoft Access数据库引擎通过OleDb

是的,date格式一切都比Sid Holland提到的更为复杂 – 甚至更复杂。 原因是在一些本地化问题。 例如,如果您的Windows系统具有俄文本地化,则应在date格式中使用俄文字母,如“ДД.MM.ГГГГ”或“ГГГ-MM-ДД”,因此,您应该能够提取和应用这些信件。 查看或多或less完整的说明和解决scheme在这里: https : //stackoverflow.com/a/35418176/2199512