Dynamics 365 For Operations: Pack your data in ZIP folder
Hello guys,
Today, I would be
sharing the code in D365 FO to pack your data (can be Xml, Excel, Word etc.) in
ZIP folder.
using System.IO.Compression;
class SBSCreateZipFile
{
///
<summary>
/// Runs the
class with the specified arguments.
///
</summary>
/// <param
name = "_args">The specified arguments.</param>
public static void main(Args _args)
{
SBSCreateZipFile file = new SBSCreateZipFile();
File.createAndDownloadExcelFileViaZip();
}
public void createAndDownloadExcelFileViaZip()
{
const str extensionZIP = '.zip';
const str extensionExcel = '.xlsx';
System.IO.Stream workbookStream = new System.IO.MemoryStream();
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
using (var package = new OfficeOpenXml.ExcelPackage(memoryStream))
{
var worksheets = package.get_Workbook().get_Worksheets();
var worksheet = worksheets.Add("First
sheet");
var cells = worksheet.get_Cells();
var cell = cells.get_Item(1,1);
cell.set_Value("Customer id");
package.Save();
}
memoryStream.Seek(0, System.IO.SeekOrigin::Begin);
//File::SendFileToUser(memoryStream,
"ExcelTesting_Vishal.xlsx"); // TO download only excel i.e. .xlsx
str formDataFileName = "VishalTiwari_Package";
str formDataFileNameXML = "ExcelTesting_Vishal";
System.IO.MemoryStream zipArchiveStream = new System.IO.MemoryStream();
using (ZipArchive zipArchive = new ZipArchive(zipArchiveStream, ZipArchiveMode::Create, true))
{
ZipArchiveEntry dataFileEntry =
zipArchive.CreateEntry(formDataFileNameXML + extensionExcel);
using (System.IO.Stream dataFileEntryStream = dataFileEntry.Open())
{
memoryStream.CopyTo(dataFileEntryStream);
}
}
File::SendFileToUser(zipArchiveStream, formDataFileName +
extensionZIP);
}
}
Thanks for a perfect example
ReplyDeleteI am quit new in the D365 development in x++, and I am sitting with beneath issue
What if I have 2 downloads running after each other.
If your main is followed up by second method that’s
as well makes a zip file download
I tried but it seems that it takes the last/second run method unfortunately
How do I come around that problem?
Is it possible for you to make example, please ��
public static void main(Args _args)
{
SBSCreateZipFile file = new SBSCreateZipFile();
File.createAndDownloadExcelFileViaZip();
File.No2_createAndDownloadExcelFileViaZip();
}
Interesting Post.
ReplyDeleteMicrosoft Dynamics AX Online Training
ReplyDeleteHi, you have given really informative post. Thanks for sharing this post to our vision.
Oracle Training in Chennai | Certification | Online Training Course | Oracle Training in Bangalore | Certification | Online Training Course | Oracle Training in Hyderabad | Certification | Online Training Course | Oracle Training in Online | Oracle Certification Online Training Course | Hadoop Training in Chennai | Certification | Big Data Online Training Course