У меня есть таблица в листе Excel под названием ListProduct.xls. Когда я импортирую файл Excel, я хочу, чтобы он распечатывал таблицу на странице успеха. Индексная страница работает нормально, я могу нажать «Обзор» и выбрать файл Excel. Но когда я нажимаю кнопку «Импорт», на моем контроллере продукта появляется ошибка.
string path = Server.MapPath("~/Content/" + excelfile.FileName);
В этой строке выдает ошибку. Отображаемая ошибка:
NotSupportedException не было обработано пользовательским кодом. Исключение типа «System.NotSupportedException» произошло в mscorlib.dll, но не было обработано в пользовательском коде
ProductController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Excel = Microsoft.Office.Interop.Excel;
using System.IO;
using ImportExcelFileInASPNETMVC.Models;
namespace ImportExcelFileInASPNETMVC.Controllers
{
public class ProductController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Import(HttpPostedFileBase excelfile)
{
if (excelfile == null || excelfile.ContentLength == 0)
{
ViewBag.Error = "Please select a excel file
";
return View("Index");
}
else
{
if (excelfile.FileName.EndsWith("xls") || excelfile.FileName.EndsWith("xlsx"))
{
string path = Server.MapPath("~/Content/" + excelfile.FileName);
if (System.IO.File.Exists(path))
System.IO.File.Delete(path);
excelfile.SaveAs(path);
// Read data from excel file
Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Open(path);
Excel.Worksheet worksheet = workbook.ActiveSheet;
Excel.Range range = worksheet.UsedRange;
List
listProducts = new List();
for (int row = 3; row