Tag: int

gembox.spreadsheetdate被转换为int

我使用GemBox.Spreadsheet版本39.3.30.1202将Excel 97-2003 XLS文件加载到C#中。 一个单元格的值为13-01-2017(格式:20170113),数据types为“date”,自定义格式为“YYYYMMDD”。 Gembox.Load(new XlsLoadOptions( ) { PreserveOptions = XlsOptions.None });之后Gembox.Load(new XlsLoadOptions( ) { PreserveOptions = XlsOptions.None }); 该单元格的值为42748,value的types为“int”。 我可以使用ExcelCell.ConvertExcelNumberToDateTime(cell.DoubleValue, false) = {13/01/2017 00:00:00}得到正确的值,但由于这是donw在一个自动化的过程中,我不能告诉真正的整数从错误的转换date。 我怎样才能得到GemBox.Spreadsheet看到date不是一个数字?

VBA检查一个十进制值是否只有2个小数点。 使用Int()时出错

我正在使用vba在Excel文件上编写一些检查例程。 其中一个需要检查一些单元格的值是否只有2个或更less的小数点。 要做到这一点,我写了一个基本上有这个代码的函数: Function checkValues(sheet as Worksheet) as Boolean val = sheet.Cells(1,1).Value val = val * 100 valInt = Int(val) if valInt <> val then checkValues = false Exit Function end if checkValues = true End Function 问题是,当我把Cell(1,1)的值等于1,12时,这个函数返回False。 当我使用debugging,我清楚地看到valInt和val都等于112,但我不知道为什么valInt <> val'给我'真'。 任何人都可以帮助我? PS:我已经尝试改变为Fix()函数,并尝试了很多其他语句。 非常感谢。

Excel确定单元格的数据types是DateTime还是Int

我正在研究一些function,这些function需要知道给定Excel电子表格的用户的列的数据types。 这些电子表格可以有各种格式,除了第一行是列名以外,没有标准格式。 我遇到的问题是能够区分整数和DateTime列。 目前,我正在使用以下函数来确定单元格是否是DateTime单元格: private bool isOADate(double Val) { try { DateTime dt = DateTime.FromOADate(Val); return true; } catch (ArgumentException) { return false; } } 但是如果一个单元格有1,2,3等等,这个函数返回true,因为它能够将它们转换成1899/12/31 12:00:00 AM,1900/01/01 12:00:00 AM, 1900/01/02 12:00:00 AM。 有没有更好的方法来确定单元格的DateTime数据types? 或者你可以提出一个改进我目前的function,以区分它们?

是否有可能从VSTO中的Range.Value得到一个int?

我有一个VSTO插件,我正在读取Excel工作表中的数据。 看起来,几乎所有的数字数据都是以doubleforms读取的。 是否有可能从Range.Value得到一个int值? 这里有一些代码来演示我的意思。 Worksheet w = (Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets["Sheet1"]; var value = ((Range)w.Cells[1, 1]).Value; bool isInt = value is int; bool isDouble = value is double; 无论我在工作表Sheet1,单元格A1中使用哪种格式, isInt总是返回false。 有什么格式我应该用来获得int ? 我想也许General或0将工作,但似乎不是。