MVC 5 Как загрузить файл Excel и читать строки до последней заполненной строки данных с помощью EPPlus (OfficeOpenXml) EC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 MVC 5 Как загрузить файл Excel и читать строки до последней заполненной строки данных с помощью EPPlus (OfficeOpenXml) E

Сообщение Anonymous »

У меня есть решение для загрузки файлов 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»