无法保存到Azure云服务的文件夹目录
问题描述:
我试图创建一个使用Microsoft.Office.Interop.Excel
一个Excel文件,而这似乎是我的本地机器上使用下面的代码工作:无法保存到Azure云服务的文件夹目录
//Start Excel and get Application object.
oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = true;
//Get a new workbook.
oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add(""));
oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;
//Add Contact Details for Manager
oSheet.Cells[1, 1] = "Account Manager";
oSheet.Cells[2, 1] = "Manager Name";
oSheet.Cells[3, 1] = "+44(0)2871262626";
oSheet.Cells[4, 1] = "[email protected]";
oSheet.get_Range("A1", "A4").Font.Bold = true;
oXL.DisplayAlerts = false;
oWB.SaveAs(Server.MapPath("~/TransitFiles/") + bill.Landlord.Name + " Group Bill " + bill.LandlordBillID + ".xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
当我尝试将其部署到我的天蓝云服务我无法生成文件,尽管复制了dll
并创建了相关的文件夹位置,这是由于我放置在那里的holder.txt文档,显示Excel
的最佳方式是什么文件为ActionResult
in MVC
?
答
当我尝试这个我不能生成文件尽管有该dll
部署到我的Azure云服务由于没有没有微软Office目前在Azure上WebRole所以我们不能使用Office InterOP DLL。
我们可以使用OpenXml SDK。我做了一个演示,它在我身边正常工作。以下是根据您的代码的演示代码。我们还可以从document获得更多关于使用OPenXML运行excel的代码。
var fileName = Server.MapPath("~/")[email protected]"OpenXMltest.xlsx";
using (SpreadsheetDocument document = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook))
{
WorkbookPart workbookPart = document.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
var sheetData = new SheetData();
worksheetPart.Worksheet = new Worksheet(sheetData);
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Test Sheet" };
List<String> columns = new List<string>();
Row newRow1 = new Row();
Row newRow2 = new Row();
Row newRow3 = new Row();
Row newRow4 = new Row();
Cell cell1 = new Cell
{
DataType = CellValues.String,
CellValue = new CellValue("Account Manager")
};
Cell cell2 = new Cell
{
DataType = CellValues.String,
CellValue = new CellValue("Manager Name")
};
Cell cell3 = new Cell
{
DataType = CellValues.String,
CellValue = new CellValue("+44(0)2871262626")
};
Cell cell4 = new Cell
{
DataType = CellValues.String,
CellValue = new CellValue("[email protected]")
};
newRow1.AppendChild(cell1);
newRow2.AppendChild(cell2);
newRow3.AppendChild(cell3);
newRow4.AppendChild(cell4);
sheetData.AppendChild(newRow1);
sheetData.AppendChild(newRow2);
sheetData.AppendChild(newRow3);
sheetData.AppendChild(newRow4);
sheets.Append(sheet);
workbookPart.Workbook.Save();
}
什么是显示在Excel文档作为MVC一个ActionResult的最佳方式?
如果我们想显示文档,根据我的经验,我们可以使用dataview来做到这一点。