如何解决如何在OpenXml中使用“内容处置附件”
我有一个ASP.NET MVC 4站点,该站点使用OPEN XML SDK创建Excel文件。我的控制器方法会生成OPEN XML Excel文档并正在下载。
但是用户应该在浏览器中看到Excel文件。
我知道
Response.AddHeader("content-disposition","attachment; filename=" + fileName + "");
对此负责。但是我不知道如何在openXnl方法中实现这一点。我在这里没有使用http响应。或如何使用?请帮助我
这是我的Excel生成方法,我尝试实现AddHeader "content-disposition"
,但无济于事:
public static void GenerateExcelOpenXML(string FolderPath,DataSet tableSet)
{
WorkbookPart wBookPart = null;
var datetime = DateTime.Now.ToString().Replace("/","_").Replace(":","_");
string FilePath = FolderPath + "Report_" + datetime + ".xlsx";
using (SpreadsheetDocument spreadsheetDoc = SpreadsheetDocument.Create(FilePath,SpreadsheetDocumentType.Workbook))
{
wBookPart = spreadsheetDoc.AddWorkbookPart();
wBookPart.Workbook = new Workbook();
uint sheetId = 1;
spreadsheetDoc.WorkbookPart.Workbook.Sheets = new Sheets();
Sheets sheets = spreadsheetDoc.WorkbookPart.Workbook.GetFirstChild<Sheets>();
WorkbookStylesPart wbsp = wBookPart.AddNewPart<WorkbookStylesPart>();
wbsp.Stylesheet = CreateStylesheet();
wbsp.Stylesheet.Save();
foreach (DataTable table in tableSet.Tables)
{
WorksheetPart wSheetPart = wBookPart.AddNewPart<WorksheetPart>();
Sheet sheet = new Sheet() { Id = spreadsheetDoc.WorkbookPart.GetIdOfPart(wSheetPart),SheetId = sheetId,Name = table.TableName };
sheets.Append(sheet);
SheetData sheetData = new SheetData();
wSheetPart.Worksheet = new Worksheet();
Row headerRow = new Row();
Columns columns = new Columns();
int ColumnNumber = 1;
foreach (DataColumn column in table.Columns)
{
Cell cell = new Cell();
cell.DataType = CellValues.String;
cell.CellValue = new CellValue(column.ColumnName);
cell.StyleIndex = 2;
headerRow.AppendChild(cell);
Column column1 = new Column();
column1.Width = 30;
column1.Min = Convert.ToUInt32(ColumnNumber);
column1.Max = Convert.ToUInt32(ColumnNumber);
column1.CustomWidth = true;
columns.AppendChild(column1);
ColumnNumber = ColumnNumber + 1;
}
wSheetPart.Worksheet.AppendChild(columns);
sheetData.AppendChild(headerRow);
foreach (DataRow dr in table.Rows)
{
Row row = new Row();
foreach (DataColumn column in table.Columns)
{
Cell cell = new Cell();
cell.DataType = CellValues.String;
cell.CellValue = new CellValue(dr[column].ToString());
cell.StyleIndex = 1;
row.AppendChild(cell);
}
sheetData.AppendChild(row);
}
sheetId++;
wSheetPart.Worksheet.AppendChild(sheetData);
// sheetData.AddHeader("content-disposition","attachment; filename=" + fileName + "");
// how can I implement here?
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。