1
我有一些信息的文本文件,我將它轉換爲ExcelPackage使用EPPlus的對象,現在我想知道是否有方法用Excel打開此對象將其保存到本地文件?如果不可能,我可以使用臨時目錄將我的ExcelPackage保存到文件,然後打開它?使用Excel應用程序打開ExcelPackage對象,而不將其保存在本地文件路徑
我有一些信息的文本文件,我將它轉換爲ExcelPackage使用EPPlus的對象,現在我想知道是否有方法用Excel打開此對象將其保存到本地文件?如果不可能,我可以使用臨時目錄將我的ExcelPackage保存到文件,然後打開它?使用Excel應用程序打開ExcelPackage對象,而不將其保存在本地文件路徑
如果你正在談論一個Windows應用程序,你可以使用像System.IO.Path.GetTempPath()
。你可以從這裏得到更多的信息:
How to get temporary folder for current user
所以,這樣的事情:
[TestMethod]
public void TempFolderTest()
{
var path = Path.Combine(Path.GetTempPath(), "temp.xlsx");
var tempfile = new FileInfo(path);
if (tempfile.Exists)
tempfile.Delete();
//Save the file
using (var pck = new ExcelPackage(tempfile))
{
var ws = pck.Workbook.Worksheets.Add("Demo");
ws.Cells[1, 2].Value = "Excel Test";
pck.Save();
}
//open the file
Process.Start(tempfile.FullName);
}
如果你談論的網絡,你不應該需要保存這一切,只是通過響應發送:
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();
}
認爲@Ernie,這就是我要找的東西 – YouneL 2014-12-05 22:48:53