У меня отсутствует одна ссылка для .Cells
, и на картинке показаны все ссылки, которые я пробовал. Кого я все еще не хватает?
ответ
Вы, кажется, вводит в заблуждение проект ExcelPackage
и проект EPPlus
. Я вижу, как они разделяют пространства имен и имена классов (я не знаю истории, чтобы знать, связаны ли они или нет).
У вас есть ссылка на dll ExcelPackage
в вашем примере. Класс ExcelWorksheet
не имеет значения Cells
; вместо этого он имеет метод Cell
.
ExcelWorksheet
класса EPPlus
делает имеет Cells
свойство, которое возвращает ExcelRange
. ExcelRange
в свою очередь, имеет индексатор, который выглядит так, который позволил бы код, который вы должны работать:
public ExcelRange this[int Row, int Col]
Чтобы получить код для работы с использованием ExcelPackage
вам необходимо изменить, чтобы с помощью метода:
worksheet.Cell(row, col).Value = (row * col).ToString();
Обратите внимание, что Value
свойство является string
поэтому я звоню ToString()
Если вы предпочли бы сохранить свой код как можно удалить ссылку на ExcelPackage
и вместо этого добавьте ссылку на EPPlus
(которая доступна по адресу Nuget). Я понятия не имею, что лучше, чем работать с кодом на обоих (с приведенным выше исправлением для версии ExcelPackage
) дает мне предупреждение при загрузке файла, созданного ExcelPackage
в Excel, но не для того, который создан с помощью EPPlus
.
Пожалуйста, разместите свой код как отформатированный код, а не снимок экрана. Это очень трудно прочитать и невозможно скопировать и вставить в текстовый редактор. – JNYRanger
@FarhadJabiev Как это поможет? Он использует 'OfficeOpenXml', класс [ExcelWorksheet] (https://excelpackage.codeplex.com/SourceControl/latest#ExcelPackageWinRt/ExcelPackageWinRt/ExcelWorksheet.cs) не содержит свойство« Ячейки », это его проблема. – dtsg
Вы хотите метод 'Cell', а не свойство' Cells'? (что, как указывает dtsg, похоже, не существует) - например. рабочий лист.Cell (row, col) .Value = row * col; – petelids