У меня есть 2D Object Array, извлеченный из таблицы Excel с помощью Excel Interop.Передача значений Excel Interop для Deedle DataFrame
data = activeWorksheet.UsedRange.Value2;
data.GetType()
{Name = "Object[,]" FullName = "System.Object[,]"}
Looking at the Deedle documentation on Frames, кажется, что я мог бы создать кадр из 2D массива FromArray2D(array)
, или «последовательность любых объектов .NET» FromRecords(values)
, но не похоже, чтобы быть в состоянии принять этот массив объектов.
Я также пробовал кастинг в массив, но это дает мне массив объектов com, из которых я мог бы ссылаться Value2
. Так что это действительно не поможет.
cellArray = activeWorksheet.UsedRange.Cells.Cast<Excel.Range>().ToArray<Excel.Range>();
cellArray.GetType()
{Name = "Range[]" FullName = "Microsoft.Office.Interop.Excel.Range[]"}
Я полагаю, я мог бы написать функцию, чтобы восстановить свои данные, based on the Github examples, но прежде, чем я могу это сделать ....
Есть ли преобразование типов/Литой я должен смотреть, чтобы легко Excel -> Вставка Dedle DataFrame?
Edit:
При попытке использовать FromArray2D
, я получаю ниже.
Frame df = Frame.FromArray2D(data);
'Frame.FromArray2D(data)' threw an exception of type 'System.IndexOutOfRangeException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2146233080
HelpLink: null
InnerException: null
Message: "Index was outside the bounds of the array."
Source: "Deedle"
StackTrace: " at Deedle.Frame.FromArray2D[T](T[,] array) in C:\\code\\deedle\\src\\Deedle\\FrameExtensions.fs:line 281\r\n at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)"
TargetSite: {Deedle.Frame`2[System.Int32,System.Int32] FromArray2D[T](T[,])}
Возможно, это связано с тем, что Excel Interop использует 1-индексные массивы, а не 0-индекс, поэтому существует несоответствие?
Я не могу найти этот Excel quirk в официальной документации, но SO усеян ответами, говорящими так же. Пример: https://stackoverflow.com/a/14345372/1886901
Какая ошибка возникает при попытке использовать 'FromArray2D'? –
Обновлен мой вопрос, чтобы включить ошибку для 'FromArray2D' – getglad