D365 数据保存Excel

using System.Drawing;
using DrawColor = System.Drawing.Color;
using OfficeOpenXml;
using OfficeOpenXml.Style;
class SerializationMasterToExcel
{
    #File
    FormDataSource formDataSource;
    public static void main(Args _args)
    {
        SerializationMasterToExcel MasterToExcel = new KKC_SerializationMasterToExcel();
        MasterToExcel.ParmformDataSource(_args.record().DataSource());
        MasterToExcel.run();
    }

    public formDataSource ParmformDataSource(FormDataSource _source = formDataSource)
    {
        formDataSource = _source;

        return formDataSource;
    }

    public void export()
    {
        SerializtionmasterTable masterTable;
        // File::SendFileToUser()
        System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
        System.DateTime datetime = new System.DateTime();
        datetime = DateTimeUtil::utcNow();
        using (var package = new OfficeOpenXml.ExcelPackage(memoryStream))
        {
            For (masterTable = formDataSource.getFirst(true) ? formDataSource.getFirst(true) : formDataSource.cursor();
             masterTable; masterTable = formDataSource.getNext())
            {
                var worksheets = package.get_Workbook().get_Worksheets();
                var worksheet = worksheets.Add(masterTable.ProductValue);
                var cells = worksheet.get_Cells();  
                var cell  = cells.get_Item(1,1);
                cell.set_Value("File Control");
                cell  = cells.get_Item(2,1);
                cell.set_Value("Created By");
                cell  = cells.get_Item(2,2);
                cell.set_Value(masterTable.CreatedBy);
                cell  = cells.get_Item(3,1);
                cell.set_Value("Created On");
                cell  = cells.get_Item(3,2);
                cell.set_Value(strFmt('%1',datetime.ToString('yyyyMMddhhmmss')));
                cell  = cells.get_Item(4,1);
                cell.set_Value("Exported From");
                cell  = cells.get_Item(4,2);
                cell.set_Value("Dynamics 365");
                cell  = cells.get_Item(5,1);
                cell.set_Value("Location Fields");
                cell  = cells.get_Item(6,1);
                cell.set_Value("Location Name");
                cell  = cells.get_Item(6,2);
                cell.set_Value(masterTable.LocationName);
            }
            package.SaveAs(memoryStream);

            File::SendFileToUser(memoryStream,this.ParmFileName());
        }
      
    }

    public str getFileExtension()
    {
        //return #xlsx;
        return #xlsx;
    }

 

    private void headerCell(ExcelWorksheet _sheet, int _row, int _col, str _value)
    {
        var range = _sheet.get_Cells().get_Item(_row, _col);
        range.set_Value(_value);
        var style = range.get_Style();
        style.get_Fill().set_PatternType(ExcelFillStyle::Solid);
        style.get_Fill().get_BackgroundColor().SetColor(DrawColor::AliceBlue);
        style.set_HorizontalAlignment(ExcelHorizontalAlignment::Center);
        style.get_Border().BorderAround(ExcelBorderStyle::Thin);

    }

    public Filename ParmFileName()
    {
        System.DateTime datetime = new System.DateTime();
        datetime = DateTimeUtil::utcNow();
        Filename filename =  strFmt("%1.xlsx",datetime.ToString("yyyyMMdd"));
        return filename;
    }

}

posted @ 2020-11-05 20:06  kang001  阅读(213)  评论(0)    收藏  举报