我正在关注This http://www.c-sharpcorner.com/Blogs/47619/export-to-excel-using-epplus.aspxEPPlus 上的教程,但我对如何将下载位置设置为登录用户的“下载”文件夹感到困惑?我知道对我来说位置是这样的,但是他们是否有一种在不知道登录人员帐户信息的情况下分配它的方法?
C:\用户\笔记本电脑\下载
这是我的语法:
string location = "C:\\";
string filename = "EPPlusTest.xlsx";
using (ExcelPackage objExcelPackage = new ExcelPackage())
{
ExcelWorksheet objWorksheet = objExcelPackage.Workbook.Worksheets.Add("Sheet 1");
objWorksheet.Cells["A1"].LoadFromDataTable(dataTable, true);
using (ExcelRange objRange = objWorksheet.Cells["A1:XFD1"])
{
objRange.Style.Font.Bold = true;
objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
}
using (ExcelRange dataRange = objWorksheet.Cells["A2:XFD20"])
{
dataRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Left;
dataRange.Style.VerticalAlignment = ExcelVerticalAlignment.Bottom;
}
FileStream objFileStrm = File.Create(filename);
objFileStrm.Close();
File.WriteAllBytes(location + filename, objExcelPackage.GetAsByteArray());
}
你正在混合苹果和橙子。 File.WriteAllBytes 是 System.IO 的一部分,它旨在“本地”操作文件,例如该应用程序写入本地硬盘。
Asp.net 是网络,因此您需要执行以下操作:
using (ExcelPackage pck = new ExcelPackage())
{
var ws = pck.Workbook.Worksheets.Add("Demo");
ws.Cells[1, 2].Value = "Excel Test";
var fileBytes = pck.GetAsByteArray();
Response.Clear();
Response.AppendHeader("Content-Length", fileBytes.Length.ToString());
Response.AppendHeader("Content-Disposition",
String.Format("attachment; filename=\"{0}\"; size={1}; creation-date={2}; modification-date={2}; read-date={2}"
, "temp.xlsx"
, fileBytes.Length
, DateTime.Now.ToString("R"))
);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(fileBytes);
Response.End();
}
(摘自我的帖子:使用 Excel 应用程序打开 ExcelPackage 对象,而不将其保存在本地文件路径上 https://stackoverflow.com/questions/27320061/open-excelpackage-object-with-excel-application-without-saving-it-on-local-file/27322234#27322234)
这将通过浏览器触发下载,浏览器将使用所使用的默认设置并为您提供所需的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)