У меня есть решение для загрузки файлов MVC, которое загружает файл Excel. У меня возникла проблема с пакетом Excel, когда он считывает строку моих документов Excel прямо до конца файла, используя свойство Dimension.End.Row, я хочу читайте до последней заполненной строки, а не всех строк электронной таблицы, поскольку мой код выбрасывается с ошибкой нулевой ссылки, Excel взят из внешнего источника и представляет собой заблокированный файл, в котором около 7000 строк, но заполнено только около 3000 строк с данными свойство Dimension.End.Row считывает все 7000 строк, поэтому, когда я зацикливаюсь и сопоставляю строки и столбцы, после последней заполненной строки данных 3001 в палатах оно имеет нулевые значения. Как я могу включить это для чтения только заполненных строк в файле Excel, как я уже сказал, я не могу изменить этот файл как заблокированный и доступный только для чтения, я могу только прочитать его и загрузить. пожалуйста, смотрите мой код ниже.
[HttpPost]
public ActionResult Upload(FormCollection formCollection)
{
if (Request != null)
{
HttpPostedFileBase file = Request.Files["UploadedFile"];
if ((file != null && file.ContentLength > 0 && !string.IsNullOrEmpty(file.FileName)))
{
string fileName = file.FileName;
string fileContentType = file.ContentType;
byte[] filebytes = new byte[file.ContentLength];
var data = file.InputStream.Read(filebytes, 0, Convert.ToInt32(file.ContentLength));
var suppleirList = new List();
using (var package = new ExcelPackage(file.InputStream))
{
var currentSheet = package.Workbook.Worksheets;
var workSheet = currentSheet.First();
var noOfColumns = workSheet.Dimension.End.Column;
var noOfRows = workSheet.Dimension.End.Row;// Here is where my issue is
for (int rowIterator = 5; rowIterator < noOfRows; rowIterator++)
{
var claim = new CleanSupplierClaim();
claim.Action = workSheet.Cells[rowIterator, 1].ToString();
claim.Line_Number = workSheet.Cells[rowIterator, 2].Value.ToString();
claim.Total_Claim = workSheet.Cells[rowIterator, 3].Value.ToString();
claim.ClaimReference = workSheet.Cells[rowIterator, 4].Value.ToString();
claim.Supplier_Claim = workSheet.Cells[rowIterator, 5].Value.ToString();
claim.Currency = workSheet.Cells[rowIterator, 6].Value.ToString();
suppleirList.Add(claim);
}
}
}
}
return View("Index");
Подробнее здесь: https://stackoverflow.com/questions/353 ... ata-row-us
MVC 5 Как загрузить файл Excel и читать строки до последней заполненной строки данных с помощью EPPlus (OfficeOpenXml) E ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение