使用 ADO.NET 写入空白 Excel 工作表

2024-04-13

我正在尝试使用 ADO.NET 连接并写入 Excel 文件。我已经使用默认的 Excel 工作表创建了一个空白文件(我也尝试过使用自定义工作表。)

由于某种原因,我无法将整行数据写入工作表。如果我创建一个新工作表,它工作正常,但是我有太多工作表,并且无法删除任何工作表。

将一行数据写入一张空白纸是否需要做一些特殊的事情?

我尝试这样做:

path= the path including my file. 

connString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=NO;\"", Server.MapPath(path));

dbCmd.CommandText = "Update  [Sheet1$] Set F1 = 'Col1', F2 = 'Col2', F3 = 'Col3', F4 = 'Col4'";
dbCmd.ExecuteNonQuery(); 

下面是创建一个全新电子表格的示例,创建一个工作表 (Sheet1),然后在其中插入一行。这个例子的大部分内容是基于博客条目大卫·海登 http://www.davidhayden.com/blog/dave/archive/2006/05/26/2973.aspx(顺便说一句,对于这项任务来说,这是一篇很棒的博客文章!!)。

另外,你应该看看这个微软知识库文章 http://support.microsoft.com/kb/316934/en-us#12用于从 ADO.NET 读取/写入 Excel - 它确实涉及很多细节。

    //Most of this code was from David Hayden's blog:
    // http://www.davidhayden.com/blog/dave/archive/2006/05/26/2973.aspx
    static void Main(string[] args)
    {
        string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\TestSO1.xls;Extended Properties=""Excel 8.0;HDR=NO;""";
        DbProviderFactory factory =
          DbProviderFactories.GetFactory("System.Data.OleDb");

        using (DbConnection connection = factory.CreateConnection())
        {
            connection.ConnectionString = connectionString;
            using (DbCommand command = connection.CreateCommand())
            {
                connection.Open();  //open the connection

                //use the '$' notation after the sheet name to indicate that this is
                // an existing sheet and not to actually create it.  This basically defines
                // the metadata for the insert statements that will follow.
                // If the '$' notation is removed, then a new sheet is created named 'Sheet1'.
                command.CommandText = "CREATE TABLE [Sheet1$] (F1 number, F2 char(255), F3 char(128))";
                command.ExecuteNonQuery();

                //now we insert the values into the existing sheet...no new sheet is added.
                command.CommandText = "INSERT INTO [Sheet1$] (F1, F2, F3) VALUES(4,\"Tampa\",\"Florida\")";
                command.ExecuteNonQuery();

                //insert another row into the sheet...
                command.CommandText = "INSERT INTO [Sheet1$] (F1, F2, F3) VALUES(5,\"Pittsburgh\",\"Pennsylvania\")";
                command.ExecuteNonQuery();
            }
        }
    }

我发现的唯一问题是,即使连接字符串声明不使用标题,您仍然必须为工作表定义列名称,并且当您创建具有行标题名称的工作表时,ADO.NET 会插入一行。除了在插入所有内容并删除第一行后进入之外,我似乎找不到解决方法。不是很优雅。

希望这可以帮助!!如果您还有其他问题,请告诉我。

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

使用 ADO.NET 写入空白 Excel 工作表 的相关文章

  • Excel VBA 过滤和复制粘贴数据

    给定一个数据集 假设有 10 列 在 A 列中我有日期 在 B 列中我有 我想仅过滤 A 列 2014 年的数据 B 列 ActiveSheet Range A 1 AR 1617 AutoFilter Field 5 Operator x
  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • ASP.NET Web API 客户端 ProgressMessageHandler Post 任务卡在 WinForm 应用程序中

    我在用着HttpClient and ProgressMessageHandler来自MS ASP NET Web API 客户端库 http nuget org packages Microsoft AspNet WebApi Clien
  • 为什么这个没有特殊字符的正则表达式会匹配更长的字符串?

    我正在使用此方法来尝试查找匹配项 例如 Regex Match A2 TS OIL TS OIL RegexOptions IgnoreCase Success 我得到了真实的结果 我很困惑 我认为这应该返回 false 因为模式中没有特殊
  • 类的成员复制

    在学习 复制成员 概念时 书中给出了如下说法 此外 如果非静态成员是引用 const 或没有复制赋值的用户定义类型 则无法生成默认赋值 我不太明白这个声明到底想传达什么 或者说这个说法指的是哪一种场景 谢谢 该语句与编译器自动为您编写的类
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • 为什么 set_symmetry_difference 无法与比较器一起使用?

    Example program include
  • 如何从文本文件读取整数到数组

    这就是我想做的 我对此有些不满 但我希望你能容忍我 这对我来说是一个非常新的概念 1 在我的程序中 我希望创建一个包含 50 个整数的数组来保存来自文件的数据 我的程序必须获取用户的文档文件夹的路径 2 文件的名称为 grades txt
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 如何在字符串vba中包含引号

    我想存储以下文本 Test1 Monday Test Abcdef 全部在字符串中包含引号 我知道要在字符串中包含引号 我必须包含 之前 但在这里这不是一个很好的解决方案 因为我在文本中有太多这样的解决方案 知道如何一次完成这一切吗 您有两
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 运行选定的代码生成器时出错:“未将对象引用设置到对象的实例。”错误?

    我已经尝试了所有解决方案 例如修复 VS 2013 但没有用 当您通过右键单击控制器文件夹来创建控制器并添加控制器时 然后右键单击新创建的控制器的操作并选择添加视图 当我尝试创建视图时 就会发生这种情况 它不是一个新项目 而是一个现有项目
  • ASP.NET MailMessage.BodyEncoding 和 MailMessage.SubjectEncoding 默认值

    很简单的问题 但我在 MSDN 上找不到答案 查找 ASP NET 将用于的默认值 MailMessage BodyEncoding and MailMessage SubjectEncoding 如果你不在代码中设置它们 Thanks F
  • 在 EnvDTE 中调试时捕获 VS 局部变量

    是否可以使用 EnvDTE 进行 vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据 或者可以通过其他方法吗 我想创建一个自定义的本地窗口 我们可以修改它以根据需要显示一些较重的内容 而无需为高级用户牺牲原始的本地
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用

随机推荐

  • 获取屏幕分辨率作为cmd中的变量

    我需要一个脚本来根据所使用的屏幕分辨率复制特定图像 到目前为止我发现wmic desktopmonitor get screenheight给了我适当的输出 但我在将其解析为可用变量时遇到问题 问题是输出分为三行 我只需要第二行的信息 有人
  • 从详细信息选项卡中获取文件描述

    我希望能够从 dll 或 sys 文件的详细信息选项卡中获取文件描述字符串 我尝试过多种方法来做到这一点 但无法让它们点击 无论如何 是否可以通过命令行执行此操作 使其在屏幕上生成输出 我对使用 VB 提供的 FileVersion des
  • 判断鼠标是否位于表单上方的最佳方法是什么?

    我想通了如何捕获鼠标点击 https stackoverflow com questions 2866936 how can i add an event handler to an event by name覆盖整个表单 但此方法不能很好
  • 从 file:// 方案运行的应用程序出现 CORS 错误

    我有一个 AngularJS Cordova 应用程序 它轮询远程服务器上的 JSON 服务 http method GET url http example com index php 在浏览器中开发并在我的 Intranet apach
  • Vuetify 在浅色和深色主题之间切换(使用 vuex)

    所以在我的 Vue 项目中 我基本上有两个页面 组件 将根据 URL 使用 vue router 显示 我可以通过按钮在这些页面 组件之间切换 我还使用 VueX 来管理一些数据 现在 我在其中一个组件中添加了一个开关 用于在 Vuetif
  • 删除组合框的边框

    我正在使用 C 开发一个用于显示信息的表单 但我仍然需要允许对信息进行一些操作 我真正想做的是从组合框中删除边框 这将允许我显示信息 同时还允许用户选择集合中的其他项目 而不必显示所有项目 更具体地说 我有一个包含 4 或 5 个电子邮件地
  • 我网站的 CSS 何时会影响我的搜索引擎排名?

    起初我认为 css 绝对没有什么用处 只是当用户在浏览器中查看文档时设计文档样式 但后来我意识到搜索引擎也在索引页面中使用CSS 搜索引擎不会将内容编入索引display hidden我相信 并且严厉惩罚使用关键字堆叠的网站 用户从未见过的
  • POSIX Shell 反斜杠混淆

    我正在尝试创建一个具有简单功能的 shell 脚本 但似乎我无法理解如何正确处理反斜杠 我的功能之一如下所示 bin sh func cmd printf s n cmd echo e cmd func NAME n 这是正确的输出 因为我
  • 在 HTTPS/Web Sockets 安全上运行的 Webpack 开发服务器

    通常在开发者模式下 Webpack 使用 HTTP 运行 通常有一个 Web 服务器通过 HTTP 和 webpack 在单独的端口上使用 http websockets 提供内容 是否可以在 https 上运行 Web 服务器 并在 ht
  • 处理 Moose 中的多重继承构造函数

    问候 我在学Moose http search cpan org drolsky Moose 我正在尝试写一个CGI 应用 http search cpan org markstos CGI Application Moose 的子类 由于
  • 使用热键提交 HTML 表单?

    我有一个非常简单的 HTML 表单 仅包含一个提交按钮和一个文本区域 有没有一种简单的方法可以使用热键来提交此表单 而不是按按钮 提前致谢 提交按钮可以有访问键 http webaim org techniques keyboard acc
  • Google 语音流 api 的 Grpc 代理服务器没有响应 ( Grpc.Core.RpcException )

    我们正在尝试实现 GRPC 代理服务器 ASP NET Core 控制台应用程序 它将传入数据代理到 Google Speech 流 api 代码与中几乎相同示例应用程序 https cloud google com speech docs
  • RestSharp 在上传时将整个文件加载到内存中。如何避免呢?

    我在 Mono 项目中使用 RestSharp 上传一些文件 我注意到上传大文件时 内存会大幅增长 看着RestSharp源代码 https github com restsharp RestSharp blob master src Re
  • UIAccessibility 更改 UITableView 配音公告(第 # 行)

    启用 VoiceOver 后 用户可以使用 3 指滑动手势来滚动 TableView VoiceOver 向用户口头宣布一个短语 指示他们在桌面视图上的位置 即可见的行 例如 第 1 行到第 4 行 共 5 行 我想覆盖此口头提示并通过画外
  • “找不到方法:‘System.Net.Http.HttpRequestMessage System.Web.Http.ApiController.get_Request()’。”

    这是我的控制器 using System using System Collections Generic using System Linq using System Net using System Net Http using Sys
  • 如何在 Google Colabs 中使用参数解析 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我的以下代码产生一些错误 import argparse ap argparse ArgumentParser args ap parse
  • 如何向 ASP.Net MVC 5 Identity 添加外键引用?

    我有一个使用 ASP Net Identity 的新 ASP NET MVC 5 1 项目 它看起来可靠且有希望 但今天我花了近 9 个小时来做 一些简单的事情 如果使用 SQL 我的问题是 我无法通过 CodeFirst 创建一个带有默认
  • Docker CI 无法与 mongodb-memory-server 一起使用

    我使用 mongodb memory server 测试了 mongo 中的一些存储库功能 并在本地计算机上成功运行了单元测试 但是当将此代码推送到 GitHub 时 它运行失败 我不确定问题是关于 docker 配置还是关于 mongod
  • 如何舍入/删除 pandas 列中尾随的“.0”零?

    我正在尝试查看是否可以从此电话号码列中删除尾随零 Example 0 1 8 00735e 09 2 4 35789e 09 3 6 10644e 09 此列中的类型是一个对象 我尝试对其进行舍入 但收到错误 我检查了其中几个 我知道它们的
  • 使用 ADO.NET 写入空白 Excel 工作表

    我正在尝试使用 ADO NET 连接并写入 Excel 文件 我已经使用默认的 Excel 工作表创建了一个空白文件 我也尝试过使用自定义工作表 由于某种原因 我无法将整行数据写入工作表 如果我创建一个新工作表 它工作正常 但是我有太多工作