在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