本文介绍了如何利用封闭式XML转换成字节格式转换生成excel文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好我使用closedxML DLL文件导出到Excel我有这样下面
Hi I am using closedxML DLL for exporting to excel i have static method like this below
public static void WriteToExcel(string fileName, List<CP> pages)
{
var wb = new XLWorkbook();
byte[] file;
var ws = wb.Worksheets.Add("CPs");
WriteCostHeader(ws);
////write all the header columns
//for (int i = 0; i < pages.Count; i++)
int iRow = 2;
foreach(var page in pages)
{
WriteCostPage(ws, page, iRow++);
WriteCostItemHead(ws, iRow++);
foreach(var item in page.Items)
{
WriteCostItem(ws, item, iRow++);
}
iRow++;
}
wb.SaveAs(fileName);
}
我打电话上述功能在这样的方法,下面
I am calling above function in a method like this below
public static List<CP> Init()
{
//binding items to to list
}
static void Main(string[] args)
{
byte[] file;
file = ExcelProvider.WriteToExcel("D:\\Temp\\Test1.xls", Init());
//Console.WriteLine("done");
//Console.ReadLine();
}
public byte[] CreatePackage()
{
string fileName = string.Format("{0}.xlsx", "Generated");
byte[] excelFile;
// getting error here cannot convert void to byte[]
excelFile = ExcelProvider.WriteToExcel(fileName, Init());
}
但我需要得到这一结果的Excel工作表中的字节,我需要将其存储在内存流后,我可以用于进一步的目的。
but i need to get that result excel sheet in bytes, I need to store it in memory stream later i can use for further purpose ..
但我不知道我怎样才能得到字节格式创建的Excel文件...
But I am not sure how can i get the created excel file in bytes format...
会不会有人请给这一个任何想法或解决方案...许多在此先感谢...
Would any one pls give any idea or solutions on this one ...Many thanks In advance ...
推荐答案
请做到这一点: -
Please do this:-
//打开文件到文件流
//Open the File into file stream
FileStream fileStream = new FileStream(Server.MapPath(fileName), FileMode.Open, FileAccess.Read, FileShare.Read);
//Create and populate a memorystream with the contents of the
MemoryStream mstream = StreamToMemory(fileStream);
// delete the file when it is been added to memory stream
File.Delete(Server.MapPath(fileName));
//Convert the memorystream to an array of bytes.
byte[] byteArray = mstream.ToArray();
//Clean up the memory stream
mstream.Flush();
mstream.Close();
// Clear all content output from the buffer stream
Response.Clear();
// Add a HTTP header to the output stream that specifies the default filename
// for the browser's download dialog
Response.AddHeader("Content-Disposition", "attachment; filename=QatargasTimesheet-" + ((DateTime)rdDate.SelectedDate).ToString("MMM yyyy") + ".xls");
// Add a HTTP header to the output stream that contains the
// content length(File Size). This lets the browser know how much data is being transfered
Response.AddHeader("Content-Length", byteArray.Length.ToString());
// Set the HTTP MIME type of the output stream
Response.ContentType = "application/octet-stream";
// Write the data out to the client.
Response.BinaryWrite(byteArray);
这篇关于如何利用封闭式XML转换成字节格式转换生成excel文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!