使用 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 工作表 的相关文章

  • 如何在 VC++ CString 中验证有效的整数和浮点数

    有人可以告诉我一种有效的方法来验证 CString 对象中存在的数字是有效整数还是浮点数吗 Use tcstol http msdn microsoft com en us library w4z2wdyc aspx and tcstod
  • 使用 CMake 时如何导出 Emscripten 中的 C 函数

    In 本教程 https emscripten org docs porting connecting cpp and javascript Interacting with code html interacting with code
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 如何使用 Regex.Replace 从字符串中删除数字?

    我需要使用Regex Replace从字符串中删除所有数字和符号 输入示例 123 abcd33输出示例 abcd 请尝试以下操作 var output Regex Replace input d string Empty The d标识符
  • Excel VBA 用户窗体 - 当发生变化时执行 Sub

    我有一个包含很多文本框的用户表单 当这些文本框的值发生变化时 我需要通过调用子例程 AutoCalc 根据文本框值重新计算最终结果值 我有大约 25 个框 我不想向每个调用上述子例程的文本框单独添加 Change 事件 当某些值发生变化时调
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 在 C# 中为父窗体中的子窗体控件添加事件处理程序

    我有两种形式 一种是带有按钮和文本框的父表单 单击该按钮时 将打开一个对话框 该子窗体又包含一个文本框和一个按钮 现在我想要的是 每当子表单文本框中的文本更改时 父表单文本框中的文本会自动更改 为了获得这个 我所做的是 Form3 f3 n
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • C++:为什么 numeric_limits 对它不知道的类型起作用?

    我创建了自己的类型 没有任何比较器 也没有专门化std numeric limits 尽管如此 由于某种原因 std numeric limits
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 导入到 SQL Server 时忽略 Excel 文件中的列

    我有多个具有相同格式的 Excel 文件 我需要将它们导入 SQL Server 我当前遇到的问题是 有两个文本列我需要完全忽略 因为它们是自由文本 并且某些行的字符长度超出了服务器允许我导入的长度 这会导致截断错误 因为我的分析不需要这些
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 获取屏幕分辨率作为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 工作表创建了一个空白文件 我也尝试过使用自定义工作表 由于某种原因 我无法将整行数据写入工作表 如果我创建一个新工作表 它工作正常 但是我有太多工作