我有这个工作,但它已经停止,我无法弄清楚原因。我使用EPPlus.Core v1.3导入一个简单的excel文件。以下是我使用的代码:
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工作表行会抛出错误
&#34; IndexOutOfRangeException:工作表位置超出范围。&#34;
但是,当我查看包变量时,我看到了这个错误
&#34;长度=&#39; package.File.Length&#39;抛出了类型的例外 &#39; System.IO.FileNotFoundException&#39;&#34;
我在这里缺少什么?就像我说的那样,这曾经起作用了,我无法想到我改变的与此代码有关的任何事情都会导致这个问题。
答案 0 :(得分:0)
它也是同一个文件吗?看起来文件可能没有两个工作表,因为索引是1,它正在寻找第二个工作表。
答案 1 :(得分:0)
您需要在MemoryStream
中加载该文件,然后从那里创建ExcelPackage
。
using (MemoryStream ms = new MemoryStream(FileUpload1.FileBytes))
using (ExcelPackage excelPackage = new ExcelPackage(ms))
{
//work with the excel document
}
FileUpload1.FileBytes
如果是asp.net webforms,但我猜Core有类似的东西。