C# 读取服务器指定excel并通过文件流的方式下载到本地
时间: 2024-03-06 16:46:25 浏览: 165
可以使用 C# 中的 `Microsoft.Office.Interop.Excel` 库来读取 Excel 文件,然后使用 `System.IO` 库中的 `FileStream` 类来将文件流传输到客户端。
下面是一个简单的示例代码:
```csharp
using System.IO;
using Microsoft.Office.Interop.Excel;
// 创建 Excel 应用程序对象
Application excel = new Application();
Workbook workbook = null;
try
{
// 打开指定的 Excel 文件
workbook = excel.Workbooks.Open(@"\\ServerName\ExcelFiles\MyExcelFile.xlsx");
// 读取 Excel 文件中的数据
Worksheet worksheet = workbook.Sheets[1];
Range range = worksheet.UsedRange;
object[,] data = range.Value;
// 将 Excel 文件流传输到客户端
MemoryStream ms = new MemoryStream();
workbook.SaveAs(ms);
byte[] bytes = ms.ToArray();
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=MyExcelFile.xlsx");
Response.BinaryWrite(bytes);
Response.End();
}
catch (Exception ex)
{
// 处理异常
}
finally
{
// 关闭 Excel 应用程序对象并释放资源
if (workbook != null)
workbook.Close();
excel.Quit();
Marshal.ReleaseComObject(excel);
}
```
需要注意的是,上述代码中的 `Response` 对象是 ASP.NET 中的 `HttpResponse` 类,如果是在其他类型的应用程序中使用,需要将其替换为相应的对象。另外,需要在服务器上安装 Microsoft Office,才能使用 `Microsoft.Office.Interop.Excel` 库。
阅读全文