c# - 从 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
}
解决方案
推荐阅读
- django - AWS CodeBuild 在 os.environ 上中断 - python 找不到环境变量
- c - 如何将变量的值存储在C中的文件中
- c# - 如何获取json响应的子节点数据
- r - 将字符串拆分为较小的字符串以在数据框中创建新行(在 R 中)
- scala - 将自定义特征与 ActorSystem 混合
- azure - 使用 Azure API 管理创建公共 API
- javascript - Javascript函数是按值传递的?
- node.js - Node.js ImageMagick 在一台计算机上工作,但在另一台计算机上工作
- r - 创建新类别然后计入 R
- node.js - Nodejs 中的 AES-256-GCM