Добрый вечер!
Какие типы значений могут быть непосредственно сохранены в лист Excel с помощью Range.Value2
и как я могу быстро проверить, может ли конкретное значение?
Предположим, у меня есть массив объектов, возможно, с несколькими типами (например, один int
, один double
и один Foo
, хранящиеся в object[]
).
Если я выберу диапазон ширины 3 и попытаюсь сохранить этот массив, используя Range.Value2
, это приведет к исключению (конечно, Excel не знает, что такое Foo
).
Мне пришла в голову идея проверить каждое значение в массиве и, если оно невозможно сохранить, преобразовать его в строковое представление, используя ToString()
. Но как я могу проверить, является ли он изначально хранимым?
Было бы ужасно в конечном итоге сделать что-то подобное:
public bool storable<T>(T value)
{
return value is int ||
value is uint ||
value is short ||
value is byte ||
...
value is string;
}
... особенно зная, что каждый is
будет приводить переменную к тестируемому типу и серьезно влиять на производительность.
С другой стороны, я не могу позволить себе предварительное приведение каждого значения к типу string
, поскольку мне иногда хочется иметь возможность создавать графики и диаграммы с числовыми значениями, а не со строками.
Можете ли вы сказать мне, что я ошибаюсь, или предложить мне какое-либо решение проблемы?
Спасибо!