使用 C# 从 Excel 电子表格读取/写入

2023-11-30

我需要编写一个程序,将一些数据写入 Excel 电子表格。每行包含名字、姓氏、电话号码、电子邮件等基本内容,每个类别都在自己的列中。

我什至不知道从哪里开始。如果有人可以告诉我要参考哪些程序集,或者向我指出一个网站或一本涵盖通过 C# 程序从 Excel 电子表格写入/读取数据的书籍,那就太好了。

非常感谢。


添加对 Microsoft.Office.Interop.Excel 的引用。

假设您在某处有该数据的存储库,并且您的模型看起来像

class Contact
{
    public string Firstname { get; set; }
    public string Lastname { get; set; }
    public string Email { get; set; }
    public string PhoneNumber { get; set; }
}

你可以像这样将它导入到excel中

Application excelapp = new Application();
excelapp.Visible = true;

_Workbook workbook = (_Workbook)(excelapp.Workbooks.Add(Type.Missing));
_Worksheet worksheet = (_Worksheet)workbook.ActiveSheet;

worksheet.Cells[1, 1] = "First Name";
worksheet.Cells[1, 2] = "Last Name";
worksheet.Cells[1, 3] = "Email";
worksheet.Cells[1, 4] = "Phone Number";

int row = 1;

foreach (var contact in contacts)
{
    row++;

    worksheet.Cells[row, 1] = contact.Firstname;
    worksheet.Cells[row, 2] = contact.Lastname;
    worksheet.Cells[row, 3] = contact.Email;
    worksheet.Cells[row, 4] = contact.PhoneNumber;
}

excelapp.UserControl = true;

您可以在此处阅读有关 Excel 互操作库的更多信息:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel%28v=office.11​​%29.aspx

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

使用 C# 从 Excel 电子表格读取/写入 的相关文章

  • SQL Server:比较两个表中的列

    我最近完成了从某些应用程序的旧版本到当前版本的迁移 在迁移数据库时遇到了一些问题 我需要一个可以帮助我比较两个表中的列的查询 我的意思不是行中的数据 我需要比较列本身来弄清楚我错过了表结构的哪些变化 看一下红门 SQL 比较 http ww
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 隐藏 ICS 返回主页任务切换器按钮

    只是想知道如何以编程方式隐藏 ICS 返回 主页 等软件按钮 就像 Youtube 应用程序在播放视频时所做的那样 我想在视频播放时隐藏它们 但如果用户点击屏幕则将它们显示出来 我似乎无法在网络上或谷歌文档中找到它 Pinxue 正好 你想
  • 在 UserDefaults 中存储自定义对象数组

    我花了很长时间试图弄清楚如何在 UserDefaults 中存储我的自定义结构数组 这是我的代码 struct DomainSchema Codable var domain String var schema String var dom
  • 跨多列的堆叠条形图

    我设法将初始数据集转换为以下形式 ElemId total count coef true coef false coef ratio 1 a1 2 2 0 1 2 a2 4 4 0 1 3 a3 1 1 0 1 4 a4 5 5 0 1
  • 低功耗蓝牙 (BLE) - 如何分别获取服务、特征和描述符的 UUID

    在蓝牙低功耗协议的问题上苦苦挣扎 例如 一个设备有一个服务 该服务包含一个包含描述符的特征 服务的 UUID 特征和描述符事先未知 我的问题是如何以我们知道这个特定 UUID 是一种服务 特性 描述符的方式获取它们的 UUID Blueto
  • 将 Django 模型/表拆分为两个模型/表是否有性能优势?

    In 所以问题7531153 我询问了将 Django 模型一分为二的正确方法 使用 Django 的多表继承或显式定义 OneToOneField Based 卢克 斯内格评论 我很好奇将模型一分为二是否会带来性能提升 我考虑将模型分成两
  • 如何使用 jQueryUI 日期选择器和 HTML5 时间输入来比较日期/时间值?

    我想验证页面上的 开始 日期 时间对早于 结束 日期 时间对 我正在使用 jQueryUI 日期选择器和 HTML5 时间输入元素 小部件 这个 jQuery var begD datepicker parseDate mm dd yy B
  • 如何在 Oracle 中查询 CLOB 列

    我正在尝试运行一个查询 该查询包含一些 CLOB 数据类型的列 如果我像平常一样运行查询 所有这些字段都有 CLOB 作为值 我尝试使用DBMS LOB substr column 我得到了错误 ORA 06502 PL SQL numer
  • 自定义 Java Swing Meter 控件

    我正在尝试制作一个自定义的摆动控件 即米 摆动计 http dl dropbox com u 2363305 Programming Java swing meter gif 箭头将上下移动 这是我当前的代码 但我觉得我做错了 import
  • 带主体参数的改造 POST 请求 android

    我需要通过改造来执行发布请求 但我有一个我不太理解的问题 在尝试使用代码之前 我测试了 api 调用Postman和请求看起来像这样 这是我的安卓代码 public class API private static
  • 如何使用 Python Regex 查找首字母为大写的所有单词

    我需要找到文件中以大写字母开头的所有单词 我尝试了下面的代码 但它返回一个空字符串 import os import re matches filename C Users Documents romeo txt with open fil
  • iPhone 上的内存问题

    我开发了一个小型 iphone 商业应用程序 在我的应用程序中 我使用从服务器获取的数据 如果那时数据将存储在手机内存或 RAM 上 我认为它不安全 所以我将决定存储另一个自定义位置 这在手机中可能吗 有什么好的想法吗 如果您想要良好的安全
  • 在asp.net中使用文本框进行Gridview过滤

    我想知道如何根据文本框中输入的字符动态搜索或过滤网格视图中的记录 实现这一目标的最佳方法是什么 任何示例代码或示例都会非常有帮助 这里的技巧是仅进行数据绑定当搜索框中的文本发生变化时 但您必须始终设置数据源选择命令代码 因此 您添加一个文本
  • “svn list”忽略外部

    我的 SVN 树中有一个名为 library 的目录 它使用外部加载库 例如 zend Framework smarty 我使用一个自己编写的工具 它使用 svn list 我可以在其中选择应该上传到服务器的文件 看起来 svn list
  • 如何在 foreach 循环内从数组中删除对象?

    我遍历一个对象数组 并想根据其中一个对象的 id 属性删除它 但我的代码不起作用 foreach array as element foreach element as key gt value if key id value search
  • 如何设置 MSMQ 服务器以便可以通过 Internet 访问它

    我们在 Windows 2008 R2 服务器上有 MSMQ 并具有以下防火墙设置 1 在 允许程序通过 Windows 防火墙进行通信 中选中消息队列 2 启用TCP端口 2103 2105 1801 但是 当 C 应用程序 使用 For
  • 放大 cli :npm 错误!超出最大调用堆栈大小

    执行时 npm install g aws amplify cli 结果是 npm ERR Maximum call stack size exceeded npm ERR A complete log of this run can be
  • 是否可以为 Java 11 和 java 模块生成 hibernate 元模型?

    我有一个带有 JPA 实体和 persistence xml 的 java 模块 我想生成元模型 我尝试了两种变体 变体1
  • JSF 2.0 动态删除组件

    作为有关在 JSF 2 0 中动态添加组件 请参阅下面的链接 的已回答问题的后续内容 我喜欢使用数据表的方法 但是删除添加的组件之一怎么样 如何动态添加JSF组件 基于中的代码片段其他问题您链接后 您需要进行以下更改 将带有删除按钮的列添加
  • Google Charts:如何将参数传递到回调(JavaScript)?

    我有以下代码 google charts setOnLoadCallback drawChart function drawChart 我需要将一个名为chartID 的参数传递到drawChart 函数中 我该怎么做 似乎谷歌图表不想获得
  • 使用 C# 从 Excel 电子表格读取/写入

    我需要编写一个程序 将一些数据写入 Excel 电子表格 每行包含名字 姓氏 电话号码 电子邮件等基本内容 每个类别都在自己的列中 我什至不知道从哪里开始 如果有人可以告诉我要参考哪些程序集 或者向我指出一个网站或一本涵盖通过 C 程序从