Я думаю, что MikeD имеет правильную идею здесь. Я никогда не использовал Jasper, но если это файл CSV или Excel, почему бы не записать блок в свой макрос-скрипт, который открывает отчет Jasper, создает сводную таблицу и сохраняет ее снова.
Честно говоря, прошло много лет с тех пор, как я работал с VBA, но этот код был тем, что я нашел в Интернете для открытия рабочих книг (ссылка: http://p2p.wrox.com/excel-vba/10510-opening-excel-file-vba.html)
Dim oExcel as Excel.Application
Dim oWB as Workbook
Set oExcel = new Excel.Application
Set oWB = oExcel.Workbooks.Open(<pathToWorkbookHere>)
Простите за синтаксис этого, так как это из 10-летних воспоминаний, но оттуда вы можете делать такие вещи, как
oWB.Sheets(1).Cells.Copy
ThisWorkBook.Sheets("PIVOTDATA").Cells.Paste()
ThisWorkBook.Sheets("PIVOTTABLE").Cells.Refresh
ThisWorkBook.Saveas("<path to new report>", xlExcel12)
Если ваши отчеты составлены по дате, вы можете программно выбрать либо самую последнюю версию, загрузить папку и проанализировать все из них, либо что хотите. Ваш файл шаблона - это тот, на котором выполняется скрипт, и он сохраняет свои копии в состоянии «не содержит макрос», поэтому ваши пользователи никогда не получат предупреждение безопасности.
Если вы правильно определили имя файла программно, установите код для запуска «ON OPEN» в макросе шаблона и выполните thisworkbook.close
в конце скрипта, все, что вам нужно сделать, это создать пакетный файл который автоматически открывает вашу рабочую книгу в командной строке
excel.exe <template_filename>
затем установите задание cron для Windows (называемое запланированной задачей) для автоматического запуска каждый день, сразу после запуска вашего отчета jasper.
Извините, если что-то из этого "попало" с точки зрения синтаксиса. Я больше 10 лет не был в Excel VBA, но я написал такую систему в то время, когда каждый день генерировались сотни прекрасно отформатированных отчетов Excel ... сводные таблицы и все такое.
Это вполне достижимо, и вы на правильном пути.