#c# #excel #interop
#c# #excel #взаимодействие
Вопрос:
Я использую Interop для работы с Excel на C #. Мне нужны две ячейки. Вот как я их получаю:
cells = (Excel.Range)sheet.get_Range("V" i, "W" i);
System.Array values = (System.Array)cells.Cells.Value;
Это возвращает значения, которые я хочу, как было протестировано с помощью foreach
цикла. Но как мне преобразовать элементы в string
переменные? Я попробовал это:
var stringValues = values.Cast<string>();
но я никак не могу получить к нему доступ без возникновения ошибки.
Ответ №1:
Простого ConvertAll
должно быть достаточно:
var stringValues = Array.ConvertAll(values, item => (string)item);
Ответ №2:
код var stringValues = values.Cast<string>();
пытается преобразовать массив в виде строки. итак, если вы пытаетесь получить в итоге массив строк, вы можете попробовать:
var stringValues = new List<string>();
values.ToList().ForEach(cellValue=>stringValues.Add(cellValue.ToString());
это не укладывается у меня в голове, вероятно, есть более лаконичный способ выразить это
Ответ №3:
Вы можете попробовать:
values.Select(o => o.ToString());