2015-12-14 96 views
1

試圖找出如何讀取引用的內容並獲得相同的結果和Interop/COM的Range.Value ...即返回的對象[,]包含字符串,DateTime和雙打。Excel C API相當於Interop Range.Value C#

我使用ExcelDNA(和基本XlCall.Excel調用C API)和兩...

ExcelReference.GetValue()XlCall.Excel(XlCall.xlfDeref, reference)

兩個返回object[,]等同於互操作/ COM的範圍。 Value2 ...即返回的對象[,]僅包含字符串和雙精度。

問題在於日期返回爲double,我無法確定該值是否應爲doubleDateTime

回答

0

ExcelReference.GetValue()永遠不會返回日期時間,因爲這絕不是單元格的存儲值 - 它只是一個應用於數值(雙精度值)的顯示格式。貨幣和百分比格式相似。

您可以閱讀「當前顯示的單元格內容,作爲文本,包括從單元格格式化得到的任何附加數字或符號。」使用C API的xlfGetCell調用,使用選項53.但是,您必須確定該字符串是否代表您自己的日期/時間。

也可以讀取「單元格的數字格式,作爲文本(例如,」m/d/yy「或」常規「)。」使用xlfGetCell選項7.