读取上传的Excel文件而不保存它

2024-06-18

在这段代码中 - 我从用户那里获取上传的文件并将其保存在我的应用程序中的文件夹中,然后对此 Excel 文件进行 OleDbConnection 并读取数据。我的问题是 - 有人可以建议一种阅读此 Excel 文件的首选方法,但无需预先保存它,因为在我的情况下,用数据填充数据表

   if (Request != null)
      {
        HttpPostedFileBase file = Request.Files[0];
        if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
        {
          string fileName = file.FileName;
          string fileContentType = file.ContentType;
          string fileExtension = System.IO.Path.GetExtension(Request.Files[0].FileName);


          if (fileExtension == ".xls" || fileExtension == ".xlsx")
          {
            string fileLocation = Server.MapPath("~/Content/") + Request.Files[0].FileName;
            if (System.IO.File.Exists(fileLocation))
            {

              System.IO.File.Delete(fileLocation);
            }
            Request.Files[0].SaveAs(fileLocation);
            string excelConnectionString = string.Empty;
            excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
            fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
            //connection String for xls file format.
            if (fileExtension == ".xls")
            {
              excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
              fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
            }
            //connection String for xlsx file format.
            else if (fileExtension == ".xlsx")
            {
              excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
              fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
            }
            //Create Connection to Excel work book and add oledb namespace
            OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
            excelConnection.Open();

            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", excelConnection);
            OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(cmd);
            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            objAdapter1.Fill(ds);

            DataTable Dt = ds.Tables[0];

看看这个图书馆。Excel 数据阅读器 https://exceldatareader.codeplex.com/

EDIT例子:

if (Request != null)
{
   HttpPostedFileBase file = Request.Files[0];
   if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
   {
        string fileName = file.FileName;
        string fileContentType = file.ContentType;
        string fileExtension = System.IO.Path.GetExtension(Request.Files[0].FileName);

        if (fileExtension == ".xls" || fileExtension == ".xlsx")
        {
            IExcelDataReader excelReader;
            if (fileExtension == ".xls")
                excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
            else
                excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

            excelReader.IsFirstRowAsColumnNames = true;
            DataSet ds = excelReader.AsDataSet();

            DataTable Dt = ds.Tables[0];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取上传的Excel文件而不保存它 的相关文章

随机推荐

  • 参考装配错误

    我已经实现了 RoleProvider 类 在那里我创建了位于另一个程序集中的 Domain 类对象 我的程序集具有对该程序集的引用 错误 3 类型 System Data Entity DbContext 是在 未引用的程序集 您必须添加
  • 如何在iOS中查找文本段范围

    如何在 iOS 中找到文本段 又名代码段 范围 意思是 文本段的起始地址和结束地址是多少 I found 这个有趣的帖子 http www pschweitzer fr p 12但它适用于 Android 但不适用于 iOS 经过一些挖掘和
  • grpc 活跃客户端/通道数量

    我正在实现一个简单的 grpc 服务发现 我想做的一件事是跟踪当前有多少客户端使用该服务 并且该服务会将其报告给服务注册表 grpc server api 是否提供此类信息 我在这里遇到了一个有点类似的问题 https github com
  • 矢量之间的碰撞检查 - 移动矢量 - HTML、JS、P5

    我为我的玩家创建了碰撞检查功能 每次当对象 在本例中为矢量 圆 接触玩家 也是矢量 圆 时 游戏就会结束 我已经成功创建了一个逻辑 并且有一个碰撞检查正在工作 但是它并没有计算元素之间的实际距离 而不是当它们彼此相距一定距离时实际触及其结局
  • 如何将图像转换为纹身? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我后来正在使用纹身应用程序 因为我需
  • JavaFX 抛出 ArrayIndexOutOfBoundsException

    我正在尝试使用 JavaFX 标签和组 通过鼠标拖动将它们移动到屏幕上 新节点从某些线程添加到动画组中 然而 有时我会突然看到以下异常 我假设 当某些节点重叠时 但我不知道问题是什么 因为我的代码不涉及 有谁知道这个异常和根本原因 使用JD
  • 解码 JavaScript 字符串中包含十六进制的转义序列

    我有一个 JS 格式的字符串 http x3a x2f x2fwww url com 我怎样才能从中得到解码后的字符串 我尝试了 unescape string decode 但它没有解码它 如果我在浏览器中显示该编码字符串 它看起来不错
  • 如何从报告中访问报告名称属性?

    在 jasper 报表中 使用 iReports Designer 可以将报表名称设置为某个值 在 iReports 中 该值位于报表检查器的最顶层节点上 稍后如何在例如内部访问此参数的值 同一报告的变量或文本字段 在 的帮助下贾斯珀 报告
  • Jlabel HTML 格式

    我有一个 JLabel 里面有一个电子邮件地址 我在 JLabel 上使用了 HTML 格式 因此它显示为链接 但是 您无法单击该链接 事实上 您无法选择标签中的任何文本 我是否可以在 JLabel 上设置一个属性 以允许用户至少选择电子邮
  • Eclipse:覆盖 Tomcat 中的 JNDI 资源

    我正在 Eclipse 中开发 Java Web 应用程序 并将其部署到由 Eclipse 运行的 Tomcat 实例 我正在尝试让此应用程序通过 JNDI 与另一台主机上的数据库进行通信Resource元素 应用程序中包含的 contex
  • 使用 HttpClient 调用 WCF 服务

    我必须调用 WCF 服务 WCF 服务已开启 我可以编辑其配置 我想创建一个调用该服务的客户端 我无法将服务引用添加到我的客户端 因此我尝试使用 HttpClient 调用它 客户端代码 using var client new HttpC
  • 驱动程序在 Jenkins 中不是可执行错误,但在本地计算机 (MacBook) 中运行

    我正在 MacBook 上工作 当我通过testing xml文件运行测试时 我们的Jenkins服务器正在Linux服务器中运行 所有测试类都在运行 但是当我运行Jenkins构建时 它没有运行 错误提示驱动程序不可执行 我已经在 J e
  • 在 blazor 中添加全局使用指令

    命名空间 MyClassLibrary Models 中不存在类型或命名空间名称 XXX 是否缺少程序集引用 该错误参考此 BlazorProject MyPager azor g cs 在这种情况下我得到了这个错误 创建了一个类型的文件
  • 如何使用 AppDelegate 在视图之间共享 iAd 横幅

    我希望在我的应用程序中实现 iAd 到目前为止 我已经成功地使用下面的方法让它们在每个视图中正确显示 关闭 应用程序委托 import UIKit import iAd UIApplicationMain class AppDelegate
  • Oracle 中的日期字符串(以毫秒为单位)

    我想将以下字符串转换为日期 2004 09 30 23 53 48 140000000 I tried to date YYYY MM DD HH24 MI SS FF9 But PL SQL http en wikipedia org w
  • 如何使用jq将JSON对象流转换为数组

    我想用jq将 json 对象流放入 json 数组中 例如 来自 a 1 b 2 to a 1 b 2 但这是行不通的 echo a 1 b 2 jq 自从我得到 a 1 b 2 用吸吮它 s option jq s lt lt lt a
  • Django - 使用静态文件的奇怪行为

    我是姜戈的新手 我试图理解静态文件 css 和图像 发生了什么而变得疯狂 问题的简历如下 当我使用来自第三方应用程序 Haystack 的静态视图时 我无法使用静态文件 我的项目有这样的目录结构 1001empbr name of the
  • Python 3.6.1 安装位置

    我在 Ubuntu 16 服务器上安装了 Python 3 6 1 但找不到安装位置 我查看了 usr bin 其中提到了除 3 6 1 之外的所有其他版本 在哪里可以找到该版本的可执行文件 使用命令 whereis python3 6 1
  • Chrome 扩展 - 第一个链接在弹出窗口中自动聚焦

    如何停止 Google Chrome 扩展程序的默认操作以自动聚焦我的网站中的第一个链接popup html 我知道我可能可以用 JS 做一些迂回黑客或改变 focusCSS 但我认为这抛弃了我正在尝试做的其他事情 我更愿意阻止它的根本原因
  • 读取上传的Excel文件而不保存它

    在这段代码中 我从用户那里获取上传的文件并将其保存在我的应用程序中的文件夹中 然后对此 Excel 文件进行 OleDbConnection 并读取数据 我的问题是 有人可以建议一种阅读此 Excel 文件的首选方法 但无需预先保存它 因为