我已經有這個工作,但它已經停了,我無法弄清楚爲什麼。我使用EPPlus.Core v1.3導入一個簡單的excel文件。下面是我使用的代碼:Asp.net核心導入Excel文件FileNotFoundException
public async Task<IActionResult> Import(IFormFile file)
{
//Get file
var newfile = new FileInfo(file.FileName);
var fileExtension = newfile.Extension;
//Check if file is an Excel File
if (fileExtension.Contains(".xls"))
{
//Create an excel package
using (var package = new ExcelPackage(newfile))
{
//Get the first worksheet in the file
var worksheet = package.Workbook.Worksheets[1];
...
的VAR工作表行拋出一個錯誤
「IndexOutOfRangeException:工作表位置超出範圍」
然而,當我看包變量I看到此錯誤
「長度= 'package.File.Length' 扔 類型 'System.IO.FileNotFoundException' 的異常」
我在這裏錯過了什麼?就像我說的,這用於工作,我想不出任何我改變的與此代碼相關的問題。
對我來說,看起來你正在上傳一個文件,通過'FileInfo'對象獲取文件名,然後將'FileInfo'實例傳遞給'ExcelPackage'。在嘗試加載打開文件之前,您應該將文件保存到某個文件夾中。 –
我試圖避免保存到服務器,如果我不必。這些文件非常小,所以我希望將它們加載到內存和進程中。 – Wyatt
那麼你需要傳遞一個流到'ExcelPackage'而不是FileInfo。 '新的ExcelPackage(file.OpenReadStream())'可能會做到這一點,雖然我沒有看過幾個版本的'IFormFile',所以名字可能會有所不同。但你明白了。 –