如何在 ASP.Net 中下载 Excel 对象
How to download Excel object in ASP.Net
请考虑此代码:
Microsoft.Office.Interop.Excel.Application objApp;
Microsoft.Office.Interop.Excel._Workbook objBook;
Microsoft.Office.Interop.Excel.Workbooks objBooks;
Microsoft.Office.Interop.Excel.Sheets objSheets;
Microsoft.Office.Interop.Excel._Worksheet objSheet;
Microsoft.Office.Interop.Excel.Range range;
int ColumnsCount = dt.Columns.Count;
int RowsCount = dt.Rows.Count;
objApp = new Microsoft.Office.Interop.Excel.Application();
objBooks = objApp.Workbooks;
objBook = objBooks.Add(System.Reflection.Missing.Value);
objSheets = objBook.Worksheets;
objSheet = (Microsoft.Office.Interop.Excel._Worksheet)objSheets.get_Item(1);
for (int i = 1; i < ColumnsCount + 1; i++)
{
objSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName;
}
range = objSheet.get_Range("A2", System.Reflection.Missing.Value);
range = range.get_Resize(RowsCount, ColumnsCount);
string[,] saRet = new string[RowsCount, ColumnsCount];
for (int iRow = 0; iRow < RowsCount; iRow++)
{
for (int iCol = 0; iCol < ColumnsCount; iCol++)
{
saRet[iRow, iCol] = dt.Rows[iRow][iCol].ToString();
}
}
//Set the range value to the array.
range.set_Value(Missing.Value, saRet);
我想下载我创建的 Excel 对象。问题是 Microsoft.Office.Interop.Excel._Workbook
不可序列化,在我保存它之前我无法访问 Excel 文件。如何下载在内存中创建的 Excel?
谢谢
您的工作簿上应该有一个 SaveAs 方法,您可以使用它来另存为 xls 文件。
objBook.SaveAs("my-workbook.xls");
这似乎是与 Microsoft KB: Considerations for server-side Automation of Office 相关的众多问题之一。不支持使用 Excel Interop 服务器端。
我建议您导出 csv 文件或查看 OpenXML 或更简单的版本 ClosedXML 以在服务器上生成 xslx 文件。
请参阅本 MSDN 指南中的其他方法:How To Asp.Net Export Excel
请考虑此代码:
Microsoft.Office.Interop.Excel.Application objApp;
Microsoft.Office.Interop.Excel._Workbook objBook;
Microsoft.Office.Interop.Excel.Workbooks objBooks;
Microsoft.Office.Interop.Excel.Sheets objSheets;
Microsoft.Office.Interop.Excel._Worksheet objSheet;
Microsoft.Office.Interop.Excel.Range range;
int ColumnsCount = dt.Columns.Count;
int RowsCount = dt.Rows.Count;
objApp = new Microsoft.Office.Interop.Excel.Application();
objBooks = objApp.Workbooks;
objBook = objBooks.Add(System.Reflection.Missing.Value);
objSheets = objBook.Worksheets;
objSheet = (Microsoft.Office.Interop.Excel._Worksheet)objSheets.get_Item(1);
for (int i = 1; i < ColumnsCount + 1; i++)
{
objSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName;
}
range = objSheet.get_Range("A2", System.Reflection.Missing.Value);
range = range.get_Resize(RowsCount, ColumnsCount);
string[,] saRet = new string[RowsCount, ColumnsCount];
for (int iRow = 0; iRow < RowsCount; iRow++)
{
for (int iCol = 0; iCol < ColumnsCount; iCol++)
{
saRet[iRow, iCol] = dt.Rows[iRow][iCol].ToString();
}
}
//Set the range value to the array.
range.set_Value(Missing.Value, saRet);
我想下载我创建的 Excel 对象。问题是 Microsoft.Office.Interop.Excel._Workbook
不可序列化,在我保存它之前我无法访问 Excel 文件。如何下载在内存中创建的 Excel?
谢谢
您的工作簿上应该有一个 SaveAs 方法,您可以使用它来另存为 xls 文件。
objBook.SaveAs("my-workbook.xls");
这似乎是与 Microsoft KB: Considerations for server-side Automation of Office 相关的众多问题之一。不支持使用 Excel Interop 服务器端。
我建议您导出 csv 文件或查看 OpenXML 或更简单的版本 ClosedXML 以在服务器上生成 xslx 文件。
请参阅本 MSDN 指南中的其他方法:How To Asp.Net Export Excel