У меня есть метод контроллера в моем приложении MVC, который читает текстовый документ (который представляет собой файл с разделителями табуляции, сохраненный из электронной таблицы Excel). Это происходит из-за загрузки типа HttpPostedFileBase
.
Я хотел бы взять этот файл HttpPostedFileBase и, если это электронная таблица Excel, прочитать его в потоковом считывателе так же, как и текстовый файл. Это возможно?
Ниже приведен мой код, который я читал в текстовом файле в потоковом считывателе:
[HttpPost]
public JsonResult functionalFileImport(IEnumerable<HttpPostedFileBase> functionalFile)
{
//Prepare validation result
ValidationResult validationResult = new ValidationResult();
validationResult.vResult = (int)Result.Success;
validationResult.vMessage = "";
//Prepare import result
ImportResult importResults = new ImportResult();
//Prepare file variables
string fileName;
string filepath;
string fileExtension;
string tmpTableName = "";
string message = "";
string logfile = "";
List<ValidationResult> validation = null;
try
{
using (cDataAccess da = new cDataAccess(true))
{
if (functionalFile != null)
{
foreach (HttpPostedFileBase file in functionalFile)
{
//Set file details.
SetFileDetails(file, out fileName, out filepath, out fileExtension);
if (fileExtension == ".txt")
{
StreamReader stream = new StreamReader(file.InputStream);
string buffer = stream.ReadToEnd();
// Remove all carriage returns, if present
buffer = buffer.Replace("\r", "");
//Create a DataTable from the File data
DataTable dt = CreateDataTableFromFile(buffer);
DataTable dtFC = new DataTable();
// --- Would like to do a conversion if this is a Excel spreadsheet
}
}
}
}
}
catch (Exception ex)
{
// something to do
}
// something else with return statement
}