通过 C# 写入数据到Excel表格

news2024/9/19 23:53:30

Excel 是一款广泛应用于数据处理、分析和报告制作的电子表格软件。在商业、学术和日常生活中,Excel 的使用极为普遍。本文将详细介绍如何使用免费.NET库将数据写入到 Excel 中,包括文本、数值、数组、和DataTable数据的输入。

文章目录

    • C# 在Excel单元格中写入文本、或数值
    • C# 在Excel工作表中写入数组
    • C# 在Excel工作表中写入DataTable数据表

本文用到的免费.NET Excel库为 Free Spire.XLS for .NET

该库可以在Visual Studio > NuGet程序包管理器中搜索 “FreeSpire.XLS” 来安装。也可以通过此链接下载产品包后手动添加引用。

C# 在Excel单元格中写入文本、或数值

  1. 创建一个工作簿Workbook对象;
  2. 获取指定工作表;
  3. 写入数据到指定单元格:
    写入文本Worksheet.Range[].TextWorksheet.Range[].Value 属性;
    写入数字Worksheet.Range[].Value2 属性;
  4. 保存Excel文件。

C#代码

using Spire.Xls;

namespace WriteDataToCells
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Excel工作簿
            Workbook workbook = new Workbook();

            //获取其中第一张工作表
            Worksheet worksheet = workbook.Worksheets[0];

            //写入数据到指定单元格
            worksheet.Range["A1"].Text = "考号";
            worksheet.Range["B1"].Text = "学生姓名";
            worksheet.Range["C1"].Value = "所在班级";
            worksheet.Range["D1"].Value = "考试成绩";

            worksheet.Range["A2"].Value = "TS001";
            worksheet.Range["B2"].Value = "陈国柏";
            worksheet.Range["C2"].Value = "5班";
            worksheet.Range["D2"].Value2 = 97;

            worksheet.Range["A3"].Value = "TS002";
            worksheet.Range["B3"].Value = "易江维";
            worksheet.Range["C3"].Value = "2班";
            worksheet.Range["D3"].Value2 = 92;

            //设置字体样式
            worksheet.Range["A1:D1"].Style.Font.IsBold = true;
            worksheet.Range["A1:D3"].Style.Font.Size = 11;
            worksheet.Range["A1:D3"].Style.Font.FontName = "宋体";

            //保存Excel文件
            workbook.SaveToFile("写入数据到单元格.xlsx", ExcelVersion.Version2016);
        }
    }
}

将数据写入Excel

C# 在Excel工作表中写入数组

  1. 创建一个工作簿Workbook对象;
  2. 获取指定工作表;
  3. 定义一个二维数组;
  4. 通过 Worksheet.InsertArray(Object\[,\] objectArray, int firstRow, int firstColumn) 方法将二维数组中的数据插入到工作表中指定位置;
  5. 保存Excel文件。

C#代码:

using Spire.Xls;

namespace WriteArraysToWorksheet
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Excel工作簿
            Workbook workbook = new Workbook();

            //获取其中第一张工作表
            Worksheet worksheet = workbook.Worksheets[0];

            //创建一个二维数组
            string[,] twoDimensionalArray = new string[,]{

                {"统计年份", "城市", "销售额", "增长率"},
                {"2021", "上海", "150万", "55%"},
                {"2021", "杭州", "80万", "-12%"},
                {"2021", "北京", "100万", "20%"}
            };

            //将数组写入工作表指定位置
            worksheet.InsertArray(twoDimensionalArray, 1, 1);

            //设置字体样式
            worksheet.Range["A1:D1"].Style.Font.IsBold = true;
            worksheet.Range["A1:D4"].Style.Font.Size = 11;
            worksheet.Range["A1:D4"].Style.Font.FontName = "宋体";

            //保存Excel文件
            workbook.SaveToFile("写入数组.xlsx", ExcelVersion.Version2016);
        }
    }
}

将数组写入Excel

C# 在Excel工作表中写入DataTable数据表

  1. 创建一个工作簿Workbook对象;
  2. 获取指定工作表;
  3. 创建一个DataTable对象,并添加数据;
  4. 使用 Worksheet.InsertDataTable(DataTable dataTable,bool columnHeaders, int firstRow, int firstColumn, bool transTypes) 方法将DataTable的内容插入到工作表中指定位置;
  5. 保存Excel文件。

C#代码:

using System;
using System.Data;
using System.Drawing;
using Spire.Xls;

namespace WriteDataTableToWorksheet
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Excel工作簿
            Workbook workbook = new Workbook();

            //获取其中第一张工作表
            Worksheet worksheet = workbook.Worksheets[0];

            //创建DataTable对象
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("编码", typeof(Int32));
            dataTable.Columns.Add("产品", typeof(String));
            dataTable.Columns.Add("单价", typeof(Decimal));

            //创建行并添加数据
            DataRow dr = dataTable.NewRow();
            dr[0] = 110600015;
            dr[1] = "数据线";
            dr[2] = "8.5";
            dataTable.Rows.Add(dr);

            dr = dataTable.NewRow();
            dr[0] = 110600037;
            dr[1] = "鼠标";
            dr[2] = "29.9";
            dataTable.Rows.Add(dr);

            dr = dataTable.NewRow();
            dr[0] = 110600021;
            dr[1] = "网线";
            dr[2] = "15.5";
            dataTable.Rows.Add(dr);

            //将datatable中的数据写入工作表
            worksheet.InsertDataTable(dataTable, true, 1, 1, true);

            //设置字体样式
            worksheet.Range["A1:D1"].Style.Font.IsBold = true;
            worksheet.Range["A1:D4"].Style.Font.Size = 11;
            worksheet.Range["A1:D4"].Style.Font.FontName = "宋体";

            //保存Excel文件
            workbook.SaveToFile("写入DataTable.xlsx", ExcelVersion.Version2016);
        }
    }
}

将DataTable写入Excel


通过以上提供的三个示例,你可以将各种类型的数据写入到 Excel工作表中。
如需对Excel中的数据进行进一步的分析处理、或插入图表等元素,可以点击查看该免费Spire.XLS库提供相应功能教程:
https://www.e-iceblue.cn/spirexls/spire-xls-for-net-program-guide-content.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1951871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp map组件自定义markers标记点

需求是根据后端返回数据在地图上显示标记点&#xff0c;并且根据数据状态控制标记点颜色&#xff0c;标记点背景通过两张图片实现控制 <mapstyle"width: 100vw; height: 100vh;":markers"markers":longitude"locaInfo.longitude":latitude&…

Python 实现股票指标计算——DMA

DMA (Deviation Moving Average) - 平均差 1 公式 DMA 收盘价N1日简单平均 - 收盘价N2日简单平均 AMA M日DMA简单平均 2 数据准备 我们以科创50指数 000688 为例&#xff0c;指数开始日期为2019-12-31&#xff0c;数据格式如下&#xff1a; 3 计算过程 def calculate_d…

构造+有序集合,CF 1023D - Array Restoration

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1023D - Array Restoration 二、解题报告 1、思路分析 先考虑合法性检查&#xff1a; 对于数字x&#xff0c;其最左位置和最右位置 之间如果存在数字比x小&#xff0c;则非法 由于q次操作&#xff0c;第q…

Dav_笔记11:SQL Tuning Overview-sql调优 之 5

构建SQL测试用例 对于许多与SQL相关的问题&#xff0c;获得可重现的测试用例可以更轻松地解决问题。从11g第2版&#xff08;11.2&#xff09;开始&#xff0c;Oracle数据库包含SQL测试用例构建器&#xff0c;它可以自动完成收集和复制尽可能多的有关问题及其发生环境的信息的难…

Asp .Net Core 系列:详解授权以及实现角色、策略、自定义三种授权和自定义响应

什么是授权&#xff08;Authorization&#xff09;&#xff1f; 在 ASP.NET Core 中&#xff0c;授权&#xff08;Authorization&#xff09;是控制对应用资源的访问的过程。它决定了哪些用户或用户组可以访问特定的资源或执行特定的操作。授权通常与身份验证&#xff08;Auth…

vue3 vxe-table 点击行,不显示选中状态,加上设置isCurrent: true就可以设置选中行的状态。

1、上个图&#xff0c;要实现这样的&#xff1a; Vxe Table v4.6 官方文档 2、使用 row-config.isCurrent 显示高亮行&#xff0c;当前行是唯一的&#xff1b;用户操作点击选项时会触发事件 current-change <template><div><p><vxe-button click"sel…

大模型算法面试题(十二)

本系列收纳各种大模型面试题及答案。 1、领域模型Continue PreTrain数据如何选取 在领域模型的Continue PreTrain&#xff08;持续预训练&#xff09;过程中&#xff0c;数据选取是一个至关重要的步骤&#xff0c;它直接影响模型在特定领域上的性能和泛化能力。以下是一些关于…

【资料分享】2024钉钉杯大数据挑战赛A题思路解析+代码演示

2024第三届钉钉杯大学生大数据挑战赛今天已经开赛&#xff0c;【A题】思路解析代码&#xff0c;资料预览&#xff1a;

京东发行稳定币的背后

加密市场很热&#xff0c;京东也要来分一杯羹&#xff1f; 7月24日&#xff0c;据财联社报道&#xff0c;京东科技旗下的京东币链科技 ( 香港 ) 将在香港发行与港元 1:1锚定的加密货币稳定币&#xff0c;在市场上掀起广泛热议。 由于众所周知的监管原因&#xff0c;国内大厂在早…

Window下CLion实现本机通过socket通信-C++

1.引言-什么是socket socket即套接字&#xff0c;用于描述地址和端口&#xff0c;是一个通信链的句柄。应用程序通过socket向网络发出请求或者回应。 sockets(套接字)编程有三种&#xff0c;流式套接字&#xff08;SOCK_STREAM&#xff09;&#xff0c;数据报套接字&#xff…

Ubuntu18.04.6 LTS安装opencv3.3.0(详细步骤教程)

本章教程在Ubuntu18.04.6LTS上安装opencv3.3.0版本,亲测已安装成功。 一、下载opencv安装包 1、下载 wget https://github.com/opencv/opencv/archive/3.3.0.zip2、解压 unzip opencv-3.3.0.zip如果没有unzip命令,需要先安装一下 apt install unzip

2024第八届自然语言处理与信息检索国际会议 (NLPIR 2024)即将召开!

2024第八届自然语言处理与信息检索国际会议 (NLPIR 2024)将于2024年12月13-15日在日本冈山的冈山大学举行。NLPIR 2024将为自然语言处理与信息检索领域的专家学者提供一个交流与合作的平台&#xff0c;推动该领域的学术进步和技术创新。同时&#xff0c;本次会议也将为相关企业…

Spring -- 使用XML开发MyBatis

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 文章目录 MyBatis XML配置文件开发配置连接字符串和MyBatis写Mapper层代码添加mapper接口添加UserInfoXmLMapper.xml 操作数据库INSERTDELETE & UPDATE MyBatis XML配置文件开发 实际上,除…

JAVA基础 - 枚举类

目录 一. 简介 二. 声明 属性 方法 三. 常用方法 四. 使用技巧 五. 使用情景 六. 总结 一. 简介 在 Java 中&#xff0c;枚举类&#xff08;Enum Class&#xff09;是一种特殊的类&#xff0c;用于定义一组有限的、预定义的常量值。 枚举类的主要特点和优势包括&#x…

Cyberchef基础概念之-循环语句操作-Jump/Label

在本专栏的前面的文章介绍了fork,merge,subsection,register等多种概念来解决实际场景的问题。本文将介绍的Jump/Label的操作类似于编程语言中的for和while的功能&#xff0c;相信在学会使用jump操作后&#xff0c;将有助于解决更为复杂的数据处理问题。 本文将详细的介绍该操…

Linux冯诺依曼体系、操作系统、进程概念、进程状态、进程切换

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;Linux 目录 一、冯诺依曼体系结构 二、操作系统 1、概念 2、为什么要有操作系统&#xff1f; 3、理解操作系统 1.管理的本质 2.管理的概念 3.操作系统结构图 4.为什么要有操作系统&#xff1f; 三…

【计算机网络】ICMP报文实验

一&#xff1a;实验目的 1&#xff1a;掌握ICMP报文的各种类型及其代码。 2&#xff1a;掌握ICMP报文的格式。 3&#xff1a;深入理解TTL的含义&#xff08;Time to Live&#xff0c;生存时间&#xff09;。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a;RCMS-C服务器…

ocrbench:on the hidden mystery of ocr in large multimodel models

【多模态】29、OCRBench | 为大型多模态模型提供一个 OCR 任务测评基准-CSDN博客文章浏览阅读1.9k次,点赞26次,收藏22次。本文主要介绍 OCRBench_ocrbenchhttps://blog.csdn.net/jiaoyangwm/article/details/138414709OpenCompass司南 - 评测榜单评测榜单旨在为大语言模型和多…

LINUX 孤儿进程和僵尸进程

1、孤儿进 一个父进程退出&#xff0c;而它的一个或多个子进程还在运行&#xff0c;那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养&#xff0c;并由init进程对它们完成状态收集工作 为了释放子进程的占用的系统资源&#xff1a; 进程结束之后&#xf…

CAPL通过回调函数applILTxPending模拟E2E失败

文章目录 问题解决办法之前的文章 CANoe CAPL通过回调函数applILTxPending实现E2E模拟发送 问题 问题:在使用CANoeIL仿真模拟E2E报文时,在一台电脑可以仿真成功,同样的工程复制到另外一台电脑就不行了,E2E不计算,这是因为什么? 两台机柜用的都是15版本,模拟失败的是从…