Чтение файла Excel в буферный поток из HttpPostedFileBase - PullRequest
0 голосов
/ 26 июня 2018

У меня есть метод контроллера в моем приложении 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...