спасибо за помощь, я получаю исключение: Ошибка сохранения файла C: { «Ссылка на объект не указывает на экземпляр объекта»} \ U ..... EPPLUS динамический NamedRange
StackTrace: at OfficeOpenXml.ExcelPackage.Save() at MINAG.SMEA.Business.ExcelBusinessService.CreateTableExcel (десятичный опрос) в каталоге c: \ Users \ luciano \ Desktop \ Новая папка \ реализация \ MINAG.SMEA.Business \ ExcelBusinessService.cs : линия 2048
(только что трассировки стека)
М y текущий код:
FileInfo newFile = new FileInfo(file);
ExcelPackage excPck = new ExcelPackage(newFile);
foreach (SURVEY_BASE_TABLE_LIST item in survey.SURVEY_BASE_TABLE_LIST)
{
BASE_TABLE_LIST table = item.BASE_TABLE_LIST;
Int32 limit = table.CODE.Length;
if (limit > 31)
limit = 31;
string dynamicRangeFormula = "OFFSET('" + table.CODE.Substring(0, limit) + "'!$A$1;0;0;COUNTA('" + table.CODE.Substring(0, limit) + "'!$A$1:$A$1000)+1;COUNTA('" + table.CODE.Substring(0, limit) + "'!$1:$1))";
var ws = excPck.Workbook.Worksheets.Add("Pivot_" + table.CODE);
ExcelNamedRange newRange = new ExcelNamedRange(table.CODE.Substring(0, limit), null, ws, "C3", excPck.Workbook.Names.Count)
{
Formula = dynamicRangeFormula
};
var excelPivot = ws.PivotTables.Add(ws.Cells["A1"], newRange, "Pivot_" + table.CODE);
}
excPck.Save();
Любые идеи?
Btw я Assum ошибка на сводной таблицы/диапазон, но шаг за шагом отлаживать все кажется хорошо –
Возможно придется сделать некоторые Additonal работайте над своей сводной таблицей, например, установите RowFields и т. д. Ознакомьтесь с примером 12 исходного кода EPPLus (функция RunSample12): https://epplus.codeplex.com/SourceControl/latest#SampleApp/Sample12.cs – Ernie
Поблем со всеми примерами, которые были использованы, состоит в том, что они используют предустановленный источник данных var dataRange = wsData.Cells ["A1"]. LoadFromCollection ( из s в списке orderby s.LastName, s.FirstName select s, true, OfficeOpenXml.Table.TableStyles.Medium2); В моем случае мой диапазон должен быть формулой смещения .. Мне удалось заставить это работать с interop .. но я не могу запустить interop на IIS на сервере: \ –