Использование .net core & c # здесь.
У меня есть пользовательский интерфейс, с которого пользователь может загружать файлы Excel или CSV. После того, как они загрузят это, он перейдет в мой веб-API, который обрабатывает чтение данных из этих файлов и возвращает json.
Мой код API как:
[HttpPost("upload")]
public async Task<IActionResult> FileUpload(IFormFile file)
{
JArray data = new JArray();
using (ExcelPackage package = new ExcelPackage(file.OpenReadStream()))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
//Process, read from excel here and populate jarray
}
return Ok(data );
}
В приведенном выше коде я использую EPPlus для чтения файла Excel. Для файла Excel все работает нормально, но не может прочитать CSV-файл, который является ограничением EPPlus.
Я искал и нашел другую библиотеку CSVHelper: https://joshclose.github.io/CsvHelper/ Проблема в том, что она работает наоборот и может читать из CSV, но не из Excel.
Есть ли какая-либо библиотека, которая поддерживает чтение из обоих?
Или было бы возможно использовать только EPPlus, но конвертировать загруженный CSV, чтобы преуспеть на лету, а затем читать. (обратите внимание, я не храню файл Excel где-либо, поэтому не могу использовать команду сохранения, чтобы сохранить его как файл Excel)
Любые входные данные, пожалуйста?
- Обновлено - добавлен код для чтения данных из Excel ---
int rowCount = worksheet.Dimension.End.Row;
int colCount = worksheet.Dimension.End.Column;
for (int row = 1; row <= rowCount; row++)
{
for (int col = 1; col <= colCount; col++)
{
var rowValue = worksheet.Cells[row, col].Value;
}
}
//With the code suggested in the answer rowcount is always 1