C# 创建Excel并写入内容

2023-11-09

        在许多应用程序中,需要将数据导出为Excel表格,以便用户可以轻松地查看和分析数据。在本文中,我们将讨论如何使用C#创建Excel表格,并将数据写入该表格。

  1. 添加引用 在C#中创建Excel表格,需要使用Microsoft.Office.Interop.Excel命名空间中的类。打开Visual Studio,选择项目,然后右键单击“引用”并选择“添加引用”。在弹出的窗口中,选择“COM”选项卡,然后找到“Microsoft Excel xx.x 对象库”(xx.x是Excel的版本号),并将其选中。然后单击“确定”按钮,即可添加Excel引用。
  1. 创建Excel实例 使用以下代码在C#中创建Excel实例。其中,xlApp是Excel的应用程序对象,通过它可以打开、编辑和保存Excel文件。
using Microsoft.Office.Interop.Excel;

public static void CreateExcel()
{
    Application xlApp = new Application();

    // 隐藏Excel窗口
    xlApp.Visible = false;
    // 禁用警告消息
    xlApp.DisplayAlerts = false;

    Workbook xlWorkBook = xlApp.Workbooks.Add();
    Worksheet xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.Item[1];

    // 设置Excel表格名称
    xlWorkSheet.Name = "MySheet";

    // 写入数据
    xlWorkSheet.Cells[1, 1] = "Name";
    xlWorkSheet.Cells[1, 2] = "Age";
    xlWorkSheet.Cells[2, 1] = "John";
    xlWorkSheet.Cells[2, 2] = "25";
    xlWorkSheet.Cells[3, 1] = "Lisa";
    xlWorkSheet.Cells[3, 2] = "30";

    // 保存Excel文件
    xlWorkBook.SaveAs("C:\\MyExcel.xlsx");

    // 关闭Excel文件
    xlWorkBook.Close();
    xlApp.Quit();
}

在上面的代码中,我们使用Application类创建了Excel实例,并使用Workbook和Worksheet类创建了工作簿和工作表。我们还将工作表命名为“MySheet”,并将数据写入第一个和第二个单元格中。最后,使用SaveAs方法将Excel文件保存在磁盘上,并使用Close和Quit方法关闭Excel实例。

  1. 读写Excel文件 除了创建Excel表格,我们还可以读取已有的Excel文件,并将数据写入表格中。以下是一个基本的示例,可以读取现有的Excel文件,并将数据写入新的工作表中。
using Microsoft.Office.Interop.Excel;

public static void ReadWriteExcel()
{
    // 打开现有的Excel文件
    Application xlApp = new Application();
    Workbook xlWorkBook = xlApp.Workbooks.Open("C:\\MyExcel.xlsx");
    Worksheet xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.Item[1];

    // 读取数据
    string name = xlWorkSheet.Cells[2, 1].Value.ToString();
    string age = xlWorkSheet.Cells[2, 2].Value.ToString();

    // 在新的工作表中写入数据
    Worksheet newWorksheet = (Worksheet)xlWorkBook.Worksheets.Add();
    newWorksheet.Name = "NewSheet";
    newWorksheet.Cells[1, 1] = name;
    newWorksheet.Cells[1, 2] = age;

    // 保存Excel文件
    xlWorkBook.Save();

    // 关闭Excel文件
    xlWorkBook.Close();
    xlApp.Quit();
}

在上面的代码中,我们使用Workbook类打开了现有的Excel文件,并使用Worksheet类获取了第一个工作表。然后,我们读取了第一个工作表中的数据,并将其写入新的工作表中。最后,我们使用Save方法保存Excel文件,并使用Close和Quit方法关闭Excel实例。

总结 在本文中,我们介绍了如何使用C#创建Excel表格,并将数据写入该表格。我们还讨论了如何读取现有的Excel文件,并将数据写入新的工作表中。通过这些技术,您可以使用C#轻松地创建和编辑Excel表格,并将其与应用程序集成。

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

C# 创建Excel并写入内容 的相关文章

  • xlwt 可以在单元格中创建一个包含标题和链接变量的超链接吗?

    例如 如何更改以下行 使 test 为变量 T 且 http google com http google com 是变量L ws write 0 0 xlwt Formula test HYPERLINK http google com
  • 无需登录即可在 Intranet 上获取 Web 应用程序的域\用户名

    我的 Intranet 上有一个 Web 应用程序 VS 2005 有几个页面不需要用户登录应用程序 反馈和默认页面 我正在尝试获取要显示和 或发送反馈的域名和用户名 有没有一种方法可以在不需要用户登录的情况下执行此操作 我试过了this
  • BufferBlock 连续

    我想使用以下方式实现消费者 生产者模式BufferBlock
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 在异步请求中使用超时回调

    我之前问过这个问题 但我将用提出的解决方案来完成这个问题 并提出另一个问题 我正在使用这个类来进行异步网络请求 http msdn microsoft com en us library system net webrequest aspx
  • 您可以调整用户窗体的这些代码吗:使其小而高效

    当 userfrom 按以下顺序激活时 我想在运行时添加动态用户表单控件 例如 标签 文本框 我想要类似以下的东西 当用户表单激活时 它需要询问用户字段的数量 他 她想要插入 如果用户回答7 则需要按以下顺序添加字段 3 列顺序 标签1 文
  • 何时使用 C++ 私有继承而不是组合?

    你能给我一个具体的例子吗 什么时候使用私有继承优于组合 就我个人而言 我将使用组合而不是私有继承 但在某些情况下 使用私有继承可能是特定问题的最佳解决方案 正在阅读C faq http www parashift com c faq lit
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O
  • c 使用 lseek 以相反顺序复制文件

    我已经知道如何从一开始就将一个文件复制到另一个文件 但是我如何修改程序以按相反的顺序复制它 源文件应具有读取访问权限 目标文件应具有读写执行权限 我必须使用文件控制库 例如 FILE A File B should be ABCDEF FE
  • 打开位置设置页面或提示用户启用位置

    我一直在绞尽脑汁 徒劳地谷歌搜索 我正在尝试找到一种方法来提示用户通过直接进入设置页面或仅点击屏幕上的 是 来切换位置 我见过的所有代码似乎都不起作用 有人有有效的方法吗 一个详细的例子将不胜感激 谢谢 我对 Xamarin 开发非常陌生
  • C#生成的csv文件通过电子邮件发送嵌入到Lotus Note中电子邮件的底部

    我遇到了一个奇怪的问题 即使用 NET SmtpClient 通过电子邮件发送的 CSV 附件出现在电子邮件底部 而不是 Lotus Note 中的附件 我只是不知道如何解决这个问题 而且我无法访问客户端计算机 这使得调试非常困难 我可以采
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • 使用 catch all 字典属性将 json 序列化为对象

    我想使用 JSON net 反序列化为对象 但将未映射的属性放入字典属性中 是否可以 例如给定 json one 1 two 2 three 3 和 C 类 public class Mapped public int One get se
  • 删除数组时出现访问冲突异常

    删除分配的内存时 出现 访问冲突读取位置 异常 如下所示 我有一个针对 Visual Studio 2010 工具集 v100 C 编译器编译的本机 dll 我有一个针对它的托管 dll 包装器 它是针对工具集 v90 编译的 因为我想以
  • 按 Enter 继续

    这不起作用 string temp cout lt lt Press Enter to Continue cin gt gt temp cout lt lt Press Enter to Continue cin ignore 或更好 in
  • 如何使 WinForms UserControl 填充其容器的大小

    我正在尝试创建一个多布局主屏幕应用程序 我在顶部有一些按钮链接到应用程序的主要部分 例如模型中每个实体的管理窗口 单击这些按钮中的任何一个都会在面板中显示关联的用户控件 面板包含用户控件 而用户控件又包含用户界面 WinForms User
  • 在 C# 窗口应用程序中运行 C/C++ 控制台应用程序?

    现在 我想开发一个简单的应用程序 因此我决定最快的编码方式是 C NET 但现在 我很难实现我需要的功能之一 我想做的是在 C 应用程序的窗口内运行 C C 控制台应用程序 就像在虚幻前端中一样 添加一点通信方式 以便我可以为控制台应用程序
  • C# 模式匹配

    我对 C 有点陌生 我正在寻找一个字符串匹配模式来执行以下操作 我有一个像这样的字符串 该书将在 唐宁街 11 号接待处 并将由主要医疗保健人员参加 我需要创建一个 span 标签来使用 startIndex 和 length 突出显示一些
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收
  • execlp() 系统调用输出错误

    这个非常简单的例子exec 系统调用 在这里 我试图打电话execlp 两次 但是 我没有得到例外的输出 它仅显示当前目录的第一次调用的输出 include

随机推荐

  • 南航数据分析与挖掘课设1(上)——基于多元线性回归模型,ARIMA序列的中国GDP增长影响因素研究及预测(R语言)

    基于多元线性回归模型 ARIMA序列的中国GDP增长影响因素研究及预测 摘要 在国民经济发展的过程中 国内生产总值 GDP 是指按国家市场价格计算的一个国家 或地区 所有常驻单位在一定时期内生产活动的最终成果 常被公认为是衡量国家经济状况的
  • centos7 安装Anaconda3 亲测成功

    目录 Anaconda简介 1 下载 1 1 创建一个文件夹来存放安装包 1 2 进入到文件夹里面 1 3 wget命令行下载 1 4 下载情况 2 开始安装 2 1 进入到存放文件的位置 2 2 运行 sh 文件 2 3 进入注册信息页面
  • python中heapq的使用

    目录 1 heapq heapify list 2 heapq heappush heap item 3 heapq heappop heap 4 heapq nlargest n heap 5 heap nsmallest n heap
  • 用Flair(PyTorch构建的NLP开发包)进行文本分类

    Flair是一个基于PyTorch构建的NLP开发包 它在解决命名实体识别 NER 语句标注 POS 文本分类等NLP问题时达到了当前的顶尖水准 本文将介绍如何使用Flair构建定制的文本分类器 简介 文本分类是一种用来将语句或文档归入一个
  • 笔记——尤老师讲笔试

    1 Function内部不能使用时间延迟 也不能使用 这种事件触发 只能实现一些组合逻辑运算 也不能调用task task可以有时间延迟 function不可以用时间延迟 Verilog 中的 task 是一种不可综合的语法 它既提供了从不
  • 实例分割之 Mask R-CNN

    论文地址 Mask R CNN 代码地址 facebookresearch Detectron Mask R CNN是在Faster R CNN的基础上进行了改进 Faster R CNN主要是用来进行目标识别的 为了能够进行实例分割 Ma
  • SpringBoot项目-执行查询-抛出关于zeroDateTimeBehavior异常提示

    错误信息 The connection property zeroDateTimeBehavior only accepts values of the form exception round or convertToNull The v
  • [论文阅读:姿态识别&Transformer] 2110 HRFormer: High-Resolution Transformer for Dense Prediction

    论文阅读 姿态识别 Transformer 2110 HRFormer High Resolution Transformer for Dense Prediction 文章目录 论文阅读 姿态识别 Transformer 2110 HRF
  • js对象数组去重问题

    const arr2 id 1 name 张三 id 2 name 李四 id 1 name 张三 id 2 name 李四 const newArr arr2 filter currentValue currentIndex selfLi
  • boost电路公式详解

    这个是我在设计boost电路遇到问题时找的文章 觉得说的很好 所以就转载过来方便查看 原文链接 https www eet china com mp a68179 html 以下是那边文章的内容 我们知道 不论是buck 还是boost电路
  • Centos7搭建简单的Samba服务器

    目录 背景要求 环境准备 在centos7中搭建一个简单的samba服务器用于测试 帮助理解samba服务的简易用法 背景要求 设置公共目录 所有人可以访问 权限为只 读 为结算中心和技术部分别建立单独的目录 只 允许公司总经理和对应部门员
  • 高德地图自定义车辆定位marker以及弹出框窗口

    地图安装 npm install vue amap save 项目中设置高德地图 安装成功后在main js设置以下内容 import VueAMap from vue amap Vue use VueAMap VueAMap initAM
  • 邻接矩阵无向图

    邻接矩阵 无向图和有向图在邻接矩阵中的表示方法 无向图和有向图大同小异 在这里只以无向图为例 代码部分通过简单调整即可对应编译有向图 邻接矩阵数据类型定义 define MaxVertices 100 定义最大容量 typedef stru
  • ASP.NET系统用户权限设计与实现

    引言 电子商务系统对安全问题有较高的要求 传统的访问控制方法DAC Discretionary Access Control 自主访问控制模型 MAC Mandatory Access Control 强制访问控制模型 难以满足复杂的企业环
  • react-native及npm install 安装问题

    我们项目中已经开始用react native 所以swift学习放下一段时间 学了一个月的rn 今天分享记录学习过程 学习资料整理 1 react native 中文网 http reactnative cn docs 0 27 getti
  • Qt-认清信号槽的本质

    目录 放个目录方便预览 这个目录是从博客复制过来的 点击会跳转到博客 简介 猫和老鼠的故事 对象之间的通信机制 尝试一 直接调用 尝试二 回调函数 映射表 观察者模式 Qt的信号 槽 信号 槽简介 信号 槽分两种 信号 槽的实现 元对象编译
  • 数据研发面经——字节跳动

    数据研发面经 字节跳动 1 抽象类与接口 2 多态 3 四种引用 4 锁 并发怎么处理 5 进程和线程的区别 6 shuffle机制 mapreduce流程 7 JVM虚拟机 为什么需要虚拟机 8 内存区域 五部分 栈和堆区别 具体存放的东
  • 2017.10.9 DZY Loves Math VI 失败总结

    一看到love math就知道肯定不会做 首先lcm拆成i j gcd i j 然后就讨论分子和分母 但并没有什么卵用 这个题对比传统反演题 主要不同的是f函数不是很直观 所以如果枚举gcd 那剩下的两个数一定互质 然后就按照gcd 1的反
  • 思科VoIP配置清单(转)

    我配过简单的VoIP 用的是思科的设备 希望对你有用 R1接口为192 168 1 1 R2接口为192 168 1 2 R1 R2直连 并相互各连两部电话 要想实现互相通话 可以做如下配置 其中 5164765 6239560为连接R1的
  • C# 创建Excel并写入内容

    在许多应用程序中 需要将数据导出为Excel表格 以便用户可以轻松地查看和分析数据 在本文中 我们将讨论如何使用C 创建Excel表格 并将数据写入该表格 添加引用 在C 中创建Excel表格 需要使用Microsoft Office In