У меня есть решение для загрузки файлов 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#
Место общения программистов C#
1729698090
Anonymous
У меня есть решение для загрузки файлов MVC, которое загружает файл Excel. У меня возникла проблема с пакетом Excel, когда он считывает строку моих документов Excel прямо до конца файла, используя свойство Dimension.End.Row, я хочу читайте до последней заполненной строки, а не всех строк электронной таблицы, поскольку мой код выбрасывается с ошибкой нулевой ссылки, Excel взят из внешнего источника и представляет собой заблокированный файл, в котором около 7000 строк, но заполнено только около 3000 строк с данными свойство [b]Dimension.End.Row[/b] считывает все 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");
Подробнее здесь: [url]https://stackoverflow.com/questions/35341310/mvc-5-how-to-upload-excel-file-and-read-rows-till-the-last-populated-data-row-us[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия