首页 > 解决方案 > 从 HttpPostedFileBase 读取 Excel 文件以缓冲流

问题描述

我的 MVC 应用程序中有一个控制器方法,它读取一个 txt 文档(这是从 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
}

标签: c#asp.net-mvcexcel

解决方案


推荐阅读