3分钟学会在C ++中以编程方式合并Excel工作表中的单元格

2023-11-13

合并和取消合并单元格是Microsoft Excel的一项简单且常用功能。合并单元格可能会在某些情况下很有用,例如,当工作表中有多个列共享相同的标题时,可以合并列上方的单元格以使其具有共同的标题。如果不再需要合并的单元格,则可以轻松地取消合并它们。为此,本文将教您如何使用C ++以编程方式合并和取消合并Excel工作表中的单元格。

  • 使用C ++在Excel工作表中合并单元格
  • 使用C ++取消Excel工作表中的单元格
  • 使用C ++合并Excel工作表中的一系列单元格
  • 使用C ++取消Excel工作表中的单元格范围
  • 使用C ++合并Excel工作表中命名范围的单元格

Aspose.Cells for C++是本机C ++库,使用它可以创建,读取和修改Excel文件,而无需安装Microsoft Excel。该API还支持合并和取消合并Excel工作表中的单元格。下载Aspose.Cells for C++


使用C ++在Excel工作表中合并单元格

在此示例中,我们将创建一个空的Excel工作表,并按照以下步骤合并几个单元格。

  • 首先,创建一个IWorkbook类的实例。
  • 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法检索工作表。
  • 使用IWorksheet->GetICells()方法来检索单元格。
  • 使用ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::System::Int32 firstColumn, Aspose::Cells::System::Int32 totalRows, Aspose::Cells::System::Int32 totalColumns) 方法合并这些单元格。
  • 对合并后的单元格应用样式。
  • 最后,使用 IWorkbook->Save (intrusive_ptrfileName) 方法保存输出的Excel文件。

下面的示例代码显示了如何使用C ++合并Excel工作表中的单元格。

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Load the input Excel file
intrusive_ptrworkbook = Factory::CreateIWorkbook();

// Access the first worksheet in the Excel file
intrusive_ptrworksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Create a Cells object ot fetch all the cells.
intrusive_ptrcells = worksheet->GetICells();

// Merge cells
cells->Merge(5, 2, 2, 3);

// Put data into the cell
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));

// Create a Style object 
intrusive_ptrstyle = cells->GetICell(5, 2)->GetIStyle();

// Create a Font object
intrusive_ptrfont = style->GetIFont();

// Set the name
font->SetName(new String("Times New Roman"));

// Set the font size
font->SetSize(18);

// Set the font color
font->SetColor(Systems::Drawing::Color::GetCyan());

// Make the text bold
font->SetBold(true);

// Make the text italic
font->SetItalic(true);

// Set the Foreground color
style->SetForegroundColor(Systems::Drawing::Color::GetRed());

// Set the Pattern
style->SetPattern(BackgroundType_Solid);

// Apply the Style
cells->GetICell(5, 2)->SetIStyle(style);

// Save the Excel file
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));

无需MS Office创建Excel!使用C ++以编程方式合并Excel工作表中的单元格

使用C ++取消Excel工作表中的单元格

以下是取消合并Excel工作表中单元格的步骤。

  • 使用 IWorkbook 类加载 Excel 文件。
  • 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法检索包含合并单元格的工作表。
  • 使用IWorksheet->GetICells()方法来检索单元格。
  • 使用ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells::Systems::Int32 totalColumns) 方法取消合并单元。
  • 最后,使用 IWorkbook->Save (intrusive_ptrfileName) 方法保存输出的Excel文件。

下面的示例代码演示了如何使用C ++取消合并Excel工作表中的单元格。

// Source directory path.
StringPtr srcDir = new String("SourceDirectory\\");

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Load the input Excel file
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));

// Access the first worksheet in the Excel file
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Create a Cells object ot fetch all the cells.
intrusive_ptr<ICells> cells = worksheet->GetICells();

// Unmerge cells.
cells->UnMerge(5, 2, 2, 3);

// Save the Excel file
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));

无需MS Office创建Excel!使用C ++以编程方式合并Excel工作表中的单元格

使用C ++合并Excel工作表中的一系列单元格

以下是合并Excel工作表中的一系列单元格的步骤。

  • 使用 IWorkbook 类加载 Excel 文件。
  • 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法来检索所需的工作表。
  • 在单元格中插入数据。
  • 使用IWorksheet->GetICells()->CreateIRange(intrusive_ptraddress)方法创建范围。
  • 使用IRange->Merge()方法合并该范围。
  • 最后,使用 IWorkbook->Save (intrusive_ptrfileName) 方法保存输出的Excel文件。

下面的示例代码显示了如何使用C ++合并Excel工作表中的一系列单元格。

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Load the input Excel file
intrusive_ptrworkbook = Factory::CreateIWorkbook();

// Access the first worksheet in the Excel file
intrusive_ptrworksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Input data into A1 Cell.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// Create a range
intrusive_ptrrange = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// Merge range into a single cell
range->Merge();

// Save the Excel file
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));

无需MS Office创建Excel!使用C ++以编程方式合并Excel工作表中的单元格

用C++合并Excel工作表中的单元格区域

以下是在Excel工作表中取消合并单元格区域的步骤。

  • 使用ICworkbook类加载Excel文件。
  • 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法检索包含合并单元格的工作表。
  • 使用IWorksheet->GetICells()->CreateIRange(intrusive_ptraddress)方法创建范围。
  • 使用IRange->UnMerge()方法取消合并该范围。
  • 最后,使用 IWorkbook->Save (intrusive_ptrfileName) 方法保存输出的 Excel 文件。

下面的示例代码显示了如何使用C++在Excel工作表中取消合并一个单元格的范围。

// Source directory path.
StringPtr srcDir = new String("SourceDirectory\\");

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Load the input Excel file
intrusive_ptrworkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// Access the first worksheet in the Excel file
intrusive_ptrworksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Create a range
intrusive_ptrrange = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// UnMerge range
range->UnMerge();

// Save the Excel file
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));

无需MS Office创建Excel!使用C ++以编程方式合并Excel工作表中的单元格

使用C++合并Excel工作表中的指定范围的单元格

Aspose.Cells for C++还提供了合并指定区域的单元格的能力。为了实现这一功能,请按照下面的步骤进行操作。

  • 使用ICworkbook类加载Excel文件。
  • 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法检索工作表。
  • 使用IWorksheet->GetICells()->CreateIRange(intrusive_ptraddress)方法创建范围。
  • 使用IRange->SetName(intrusive_ptrvalue)方法设置范围的名称。
  • 为命名的单元格创建并应用样式。
  • 使用IRange->Merge()方法合并命名区域的单元格。
  • 最后,使用 IWorkbook->Save (intrusive_ptrfileName) 方法保存输出的Excel文件。

下面的示例代码演示了如何使用C++合并一个命名区域的单元格。

// Source directory path.
StringPtr srcDir = new String("SourceDirectory\\");

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Load the input Excel file
intrusive_ptrworkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));

// Access the first worksheet in the Excel file
intrusive_ptrworksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Create a range
intrusive_ptrrange = worksheet->GetICells()->CreateIRange(new String("A1:D4"));

// Set Range name
range->SetName(new String("Named_Range"));

// Define style object
intrusive_ptrstyle = workbook->CreateIStyle();

// Set horizontal alignment
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);

// Create a StyleFlag object
intrusive_ptrstyleFlag = Factory::CreateIStyleFlag();

// Set horizontal alignment to true
styleFlag->SetHorizontalAlignment(true);

// Apply the style to the range
range->ApplyIStyle(style, styleFlag);

// Put data in the range
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));

// Merge Range
range->Merge();

// Save the Excel file
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));

无需MS Office创建Excel!使用C ++以编程方式合并Excel工作表中的单元格


如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询。

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

3分钟学会在C ++中以编程方式合并Excel工作表中的单元格 的相关文章

  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|Python中如何提取列表中索引为奇数的元素

    简介 在Python中 我们经常需要从列表中提取特定位置的元素 如果我们想要提取列表中索引为奇数的元素 可以使用一些简单的方法来实现这一目标 本文将介绍如何在Python中提取列表中索引为奇数的元素 并提供示例代码来帮助大家更好地理解这个过
  • 软件测试|Selenium StaleElementReferenceException 异常分析与解决

    简介 Selenium 是一个流行的自动化测试工具 用于模拟用户与网页交互 然而 当我们在使用 Selenium 时 可能会遇到一个常见的异常 即 StaleElementReferenceException 这个异常通常在我们尝试与网页上
  • 软件测试|web自动化测试神器playwright教程(三十八)

    简介 在我们使用selenium时 我们可以获取元素的属性 元素的文本值 以及输入框的内容等 作为比selenium更为强大的web自动化测试神器 playwright也可以实现对元素属性 文本值和输入框内容的抓取 并且实现比seleniu
  • 软件测试|Pydantic处理时间类型数据

    简介 我们之前介绍过使用 pydantic 验证数据 比如校验数据的格式等 但是在我们的日常工作中 还有一种数据是需要我们验证的 比如时间数据 时间数据不同于字符串 列表等数据 与他们的验证不一样 本文就来为大家介绍一下 pydantic
  • 软件测试|Python数据可视化神器——pyecharts教程(九)

    使用pyecharts绘制K线图进阶版 简介 K线图 Kandlestick Chart 又称蜡烛图 是一种用于可视化金融市场价格走势和交易数据的图表类型 它是股票 外汇 期货等金融市场中最常用的技术分析工具之一 可以提供关于价格变动 趋势
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开眼了,自动化测试还能这样用?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 程序员找工作难!拿到外包公司的 offer 我应该去么?

    引言 前一阵子有一个帖子引起了非常广泛的讨论 描述的就是一个公司的外包工作人员 加班的时候因为吃了公司给员工准备的零食 被公司的HR当场批评 这个帖子一发出来 让现在测试行业日益新增的外包公司备受关注 那么外包公司和非外包公司有什么样的不一
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • Web自动化测试 —— capability参数配置

    一 capability概述 capability是webdriver支持的标准命令之外的扩展命令 配置信息 配置web驱动属性 如浏览器名称 浏览器平台 结合selenium gird完成分布式 兼容性测试 官网地址 https www
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • CMake 中预期的构建失败测试

    有时最好检查某些东西是否无法构建 例如 Next line should fail to compile can t convert const iterator to iterator my new container type iter

随机推荐

  • html&css

    html 规范 尽量使用双引号 img src 1 jpg div style color red div div HTML5标准模版 div
  • 图论感想

    图论基础无非也就是图存储 遍历 有向图无向图的连通性 分为图联通和联通分量 有向图为强联通分量 割点与割边 本人目前还没有看网络流内容 只是大致知道是什么 觉得也是图论一部分 个人认为学东西应该大体了解一下所学内容 每学一个必要好好思考 最
  • Android 设置默认锁屏壁纸接口

    完成自定义service后 接下来就是具体实现接口 1 在frameworks base core java android app customized ICustomizedService aidl中定义接口 boolean setLo
  • 第十二届蓝桥杯高职java组国一的感悟和建议

    我是高职java组的选手 这次比赛取得了国一前三的成绩 之前作为一个懵懂的大一新生 参加过一次比赛 只取得了国三的成绩 这次也算是实现一下小目标 不过可惜二次都没去北京 说好的300旅游呢 o 这应该是我最后一次参加蓝桥杯 这次比赛的题解我
  • ssh 安装注意

    修改version h 大部分漏洞要求隐藏 1 version h define SSH VERSION OpenSSH 8 4 改 define SSH PORTABLE p1 改 define SSH RELEASE SSH VERSI
  • Linux 6.6 RC 1 发布,还没加上 Bcachefs

    Linux 6 6 亮点包括 EEVDF 调度器 有利于 AMD 芯片 CPU 的工作队列变更 DRM CI 实验 KSMBD 不再是实验性质 HP BIOS 设置驱动程序 内核 make xconfig 的 Qt6 端口 新声音硬件支持
  • 快速刷爆六级词汇方式

    刷六级词汇 开启excel朗诵 方式1 方式2 关闭excel朗诵 方式1 方式2 词汇清单 之前考六级用excel刷词汇 一次通过 记录刷词方式 开启excel朗诵 方式1 点击打开朗读单元格 方式2 自定义功能区 gt 新建选项卡 gt
  • Linux文件传输--本地Windows文件上传到Linux服务器

    运行框中输入cmd打开命令框 输入下方语句进行上传 scp P 22 C Users Administrator Desktop 2023111 tar gz root IP data 语句解释 22 Linux服务器端口 C Users
  • 构建跨平台桌面应用程序:入门 Tauri 开发指南

    什么是 Tauri 简介和背景 Tauri 是一个用于构建跨平台桌面应用程序的工具包 它允许开发人员使用 Web 技术 如 HTML CSS 和 JavaScript 来构建原生应用程序 同时提供了访问底层系统 API 和外部命令的能力 T
  • 1032. 挖掘机技术哪家强(20)

    为了用事实说明挖掘机技术到底哪家强 PAT组织了一场挖掘机技能大赛 现请你根据比赛结果统计出技术最强的那个学校 输入格式 输入在第1行给出不超过105的正整数N 即参赛人数 随后N行 每行给出一位参赛者的信息和成绩 包括其所代表的学校的编号
  • android刘海屏之终极适配

    前言 作为安卓开发 也得承认苹果设计一直在引领潮流 所以自从 iPhone X 发布之后 刘海屏 就一直被热议 作为我自己必须先吐槽一下 真没觉得刘海屏好看 但是作为苦逼的开发者 还是要必须去适配刘海屏的 自然而然的在吐槽完毕以后还是有了这
  • Python爬虫技巧:使用代理IP和User-Agent应对反爬虫机制

    在当今的网络环境中 反爬虫机制广泛应用于各个网站 为爬虫程序增加了困难 然而 作为一名Python爬虫开发者 我们可以利用一些技巧应对这些反爬虫措施 本文将分享一个重要的爬虫技巧 使用代理IP和User Agent来应对反爬虫机制 帮助您更
  • JAVA中的异常和错误

    异常 Exception 异常可分为两类 运行期异常 RuntimeException 和受检异常 CheckedException 运行期异常 定义 RuntimeException及其子类都被称为运行时异常 特点 Java编译器不会检查
  • cocos命令编译Android平台,sdk版本错误解决方案

    cocos compile p android运行以后出现the android platform should be equal larger than 10的解决方案 可以使用以下命令 解决此问题 cocos compile p and
  • 【论文翻译】【剪枝】Pruning filters for efficient convnets修剪滤波以实现高效卷积网络

    摘要 神经网络在各种应用中的成功伴随着计算和参数存储成本的显著增加 最近为减少这些开销所做的努力包括在不损害原始精度的情况下修剪和压缩各个层的权重 然而 基于大小的权重修剪减少了来自全连接层的大量参数 并且由于修剪后的网络中的不规则稀疏性
  • 关于vue轮播vue-seamless-scroll自动滚动插件复制出来的数据点击事件无效

    关于vue轮播vue seamless scroll自动滚动插件复制出来的数据点击事件无效 关于vue seamless scroll 我的问题 然后又又又有新的问题了 改变插件 使用 vue j scroll总结 关于vue seamle
  • 100道Python基础入门练习题(附答案)

    我们都知道实践是检验真理的唯一标准 想知道自己学会了多少 不妨来做题检验一下吧 今天给大家分享的100道Python基础练习题 因为篇幅有限 先给大家准备了前10道例题 需要全部习题 这些知识部分习题 篇幅还是比较多的 这份完整版的Pyth
  • Linux下ffmpeg的卸载与安装

    ubuntu下比较容易安装会自动安装依赖 sudo add apt repository ppa kirillshkrogalev ffmpeg next sudo apt get update sudo apt get install f
  • FFmpeg av_interleaved_write_frame错误

    av interleaved write frame 1 av interleaved write frame 崩溃 检查 传入的AVPacket中的pts和dts AVFormatContext中的AVStream中的time base
  • 3分钟学会在C ++中以编程方式合并Excel工作表中的单元格

    合并和取消合并单元格是Microsoft Excel的一项简单且常用功能 合并单元格可能会在某些情况下很有用 例如 当工作表中有多个列共享相同的标题时 可以合并列上方的单元格以使其具有共同的标题 如果不再需要合并的单元格 则可以轻松地取消合