AXForum  
Вернуться   AXForum > Блоги > AnGor
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

Оценить эту запись

Using EPPlus in AX 2012 as an Excel writer

Запись от AnGor размещена 04.04.2018 в 18:04

EPPlus is extremely fast! I will never work again with COM if I want to make deal with Excel!

Here you can get the newest version of EPPlus: https://github.com/JanKallman/EPPlus

As usual before work with new dll you should add it to the References.

X++:
static void GOA_EPPlus(Args _args)
{
    System.IO.FileInfo      newFileInfo;
    System.IO.FileInfo      tmpFileInfo;
    Filename    newFileName = WinAPI::getTempPath() +  "GOA_InvoiceProposalAnalysis.xlsm";
    Filename    tmpFileName = TemplateProvider_RU::getFor(_args).get(resourceStr(GOA_InvoiceProposalAnalysis));

    OfficeOpenXml.ExcelPackage ExcelPkg;
    OfficeOpenXml.ExcelWorkbook ExcelWorkbook;
    OfficeOpenXml.ExcelWorksheets ExcelWorksheets;
    OfficeOpenXml.ExcelWorksheet ExcelWorksheet;
    OfficeOpenXml.ExcelRange    ExcelRange;
    OfficeOpenXml.ExcelRange    Cell;

    Bookmark            bookmark;
    int i;
    int row = 2;

    GOA_ViewInvoiceProposal    viewInvoiceProposal ;

    newFileInfo = new System.IO.FileInfo(newFileName);
    tmpFileInfo = new System.IO.FileInfo(tmpFileName);

    ExcelPkg = new OfficeOpenXml.ExcelPackage(newFileInfo, tmpFileInfo);

    ExcelWorkbook = ExcelPkg.get_Workbook();
    ExcelWorksheets = ExcelWorkbook.get_Worksheets();
    ExcelWorksheet = ExcelWorksheets.get_Item("Data");
    ExcelRange = ExcelWorksheet.get_Cells();

    while select viewInvoiceProposal
    {
        i = 1;

        bookmark = ComExcelDocument_RU::numToNameCell(i,row);
        Cell = ExcelRange.get_Item(bookmark);
        Cell.set_Value(viewInvoiceProposal.TypeView);
        i++;
        bookmark = ComExcelDocument_RU::numToNameCell(i,row);
        Cell = ExcelRange.get_Item(bookmark);
        Cell.set_Value(viewInvoiceProposal.TypeView);
        i++;
        bookmark = ComExcelDocument_RU::numToNameCell(i,row);
        Cell = ExcelRange.get_Item(bookmark);
        Cell.set_Value(viewInvoiceProposal.CustAccount);

        row++;
    }
    ExcelPkg.Save();
}
Размещено в Без категории
Просмотров 40197 Комментарии 1
Всего комментариев 1

Комментарии

  1. Старый комментарий
    Приветствую коллега. Теперь я тоже балдею от EPPPlus ))).
    Запись от Zick-Zibn размещена 30.07.2020 в 23:51 Zick-Zibn is offline
 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:15.