当前位置: 首页 > news >正文

【ArcGIS Pro二次开发】(85):Aspose.Cells中的Excel操作

Aspose.Cells是一款功能强大的Excel文档处理和转换控件,开发人员和客户电脑无需安装Microsoft Excel也能在应用程序中实现类似Excel的强大数据管理功能。


1、获取工作薄Workbook
string excelFile = "C:\Users\Administrator\Desktop\FE.xlsx";
Workbook wb = OpenWorkbook(excelFile);
2、获取工作表对象Worksheet
// 按序号
Worksheet sheet = wb.Worksheets[0];
// 按sheet名
Worksheet sheet = wb.Worksheets["sheet1"];
3、获取Cells、Cell
// 获取Cells
Cells cells = sheet.Cells
// 获取Cell,序号从0开始
Cell cell = cells[1,2]
4、读取、写入Cell值
// 读取cell值
var va = cell.Value;
string va = cell.StringValue;
...
// 写入cell值
cell.Value = "这是一个写入值";
cell.PutValue("写入值");
5、获取并设置单元格样式
// 获取style
Style style = cell.GetStyle();
// 数字型
style.Number = 4;
// 数字格式
style.Custom = "0.00";// 设置style
cell.SetStyle(style);

更多详细设置:

style.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style.Font.Name = "宋体";//文字字体
style.Font.Size = 22;//文字大小
style.IsLocked = false;//单元格解锁
style.Font.IsBold = true;//粗体
style.ForegroundColor = Color.FromArgb(0xaa, 0xcc, 0xbb);//设置背景色
style.Pattern = BackgroundType.Solid; //设置背景样式
style.IsTextWrapped = true;//单元格内容自动换行
style.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; //应用边界线 左边界线
style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; //应用边界线 右边界线
style.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; //应用边界线 上边界线
style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //应用边界线 下边界线
6、保存Workbook并释放
// 保存
wb.Save(excelFile);
wb.Dispose();
7、删除行
// 获取Cells
Cells cells = sheet.Cells
// 删除单行,序号从0开始
cells.DeleteRow(3);
// 删除多行,参数2为要删的行数
cells.DeleteRows(3,10);
8、删除列
// 获取Cells
Cells cells = sheet.Cells
// 删除列,序号从0开始
cells.DeleteColumn(3);
// 删除多列,参数2为要删的列数
cells.DeleteColumns(3,10);
9、复制行(复制列同理)
// 获取Cells
Cells cells = sheet.Cells
// 复制单行,从参数2复制到参数3
cells.CopyRow(cells, 83, 85);
// 复制多行,参数4为要复制的行数
cells.CopyRows(cells, 83, 168 + i * 85, 85);
10、强制更新计算公式、设置公式
//强制更新计算公式
wb.CalculateFormula();
//给单元格设置计算公式
cell.Formula = "=AVERAGE(B1:E1)";
11、设置行高列宽
//设置行高
cells.SetRowHeight(0, 20); 
//设置列宽
cells.SetColumnWidth(1, 30);
12、合并、取消合并单元格
// 参数:起始行,起始列,行数,列数
cells.Merge(0, 0, 1, 5);
// 参数:起始行,起始列,行数,列数
cells.UnMerge(4, 2, 2, 3);
13、插入行、列
// 在序号处插入一行
cells.InsertRow(5);
// 参数2为插入的行数
cells.InsertRows(5,3);cells.InsertColumn(5);
cells.InsertColumns(5,3);
14、将字典dict的值映射写入Excel文件
public static void ExcelAttributeMapper(string excelPath, int sheet_in_col, int sheet_map_col, Dictionary<string, string> dict, int startRow = 0)
{// 打开工作薄Workbook wb = OpenWorkbook(excelPath);// 打开工作表Worksheet sheet = wb.Worksheets[0];// 逐行处理for (int i = startRow; i <= sheet.Cells.MaxDataRow; i++){//  获取目标cellCell inCell = sheet.Cells[i, sheet_in_col];Cell mapCell = sheet.Cells[i, sheet_map_col];// 属性映射if (inCell is not null && dict.ContainsKey(inCell.StringValue)){mapCell.Value = dict[inCell.StringValue];   // 赋值}}// 保存wb.Save(excelFile);wb.Dispose();
}
15、简单的写入值
public static void ExcelWriteCell(string excelPath, int row, int col, string cell_value)
{// 打开工作薄Workbook wb = OpenWorkbook(excelPath);// 打开工作表Worksheet sheet = wb.Worksheets[0];// 获取cellCell cell = sheet.Cells[row, col];// 写入cell值cell.Value = cell_value;// 保存wb.Save(excelFile);wb.Dispose();
}
16、Excel设置单元格的格式
public static void ExcelSetColStyle(string excelPath, int col, int startRow, int styleNumber = 4, int digit = 2)
{// 打开工作薄Workbook wb = OpenWorkbook(excelPath);// 打开工作表Worksheet sheet = wb.Worksheets[0];for (int i = startRow; i <= sheet.Cells.MaxDataRow; i++){// 获取cellCell cell = sheet.Cells[i, col];// 获取styleStyle style = cell.GetStyle();// 数字型style.Number = styleNumber;// 小数位数if (digit == 1) { style.Custom = "0.0"; }else if (digit == 2) { style.Custom = "0.00"; }else if (digit == 3) { style.Custom = "0.000"; }else if (digit == 4) { style.Custom = "0.0000"; }}// 保存wb.Save(excelFile);wb.Dispose();
}
17、删除Excel表中的0值行【指定多个列】
private static List<int> ExcelDeleteNullRowResult(string excelPath, List<int> deleteCols, int startRow = 0)
{List<int> list = new List<int>();// 打开工作薄Workbook wb = OpenWorkbook(excelPath);// 打开工作表Worksheet sheet = wb.Worksheets[0];// 强制更新表内的公式单元格wb.CalculateFormula();// 找出0值行for (int i = sheet.Cells.MaxDataRow; i >= startRow; i--){// 设置一个flagbool isNull = true;// 循环查找各列的值foreach (var deleteCol in deleteCols){Cell cell = sheet.Cells.GetCell(i, deleteCol);if (cell != null)  // 值不为空{string str = cell.StringValue;if (str != "") // 值不为0{if (double.Parse(str) != 0){isNull = false;break;}}}}// 输出删除列if (isNull){list.Add(i);}}// 保存wb.Save(excelFile);wb.Dispose();// 返回值return list;
}
18、从Excel文件中获取Dictionary
public static Dictionary<string, string> GetDictFromExcel(string excelPath, int col1 = 0, int col2 = 1)
{// 定义字典Dictionary<string, string> dict = new Dictionary<string, string>();// 打开工作薄Workbook wb = OpenWorkbook(excelPath);// 打开工作表Worksheet sheet = wb.Worksheets[0];// 获取key和value值for (int i = 0; i <= sheet.Cells.MaxDataRow; i++){Cell key = sheet.Cells[i, col1];Cell value = sheet.Cells[i, col2];if (key != null && value != null){if (!dict.ContainsKey(key.StringValue)){if (key.StringValue != "" && value.StringValue != "")   // 空值不纳入{dict.Add(key.StringValue, value.StringValue);}}}}wb.Dispose();// 返回dictreturn dict;
}

相关文章:

【ArcGIS Pro二次开发】(85):Aspose.Cells中的Excel操作

Aspose.Cells是一款功能强大的Excel文档处理和转换控件&#xff0c;开发人员和客户电脑无需安装Microsoft Excel也能在应用程序中实现类似Excel的强大数据管理功能。 1、获取工作薄Workbook string excelFile "C:\Users\Administrator\Desktop\FE.xlsx"; Workbook …...

基于java+springboot+vue实现的兴顺物流管理系统(文末源码+Lw)23-287

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;货运信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…...

pytorch view、expand、transpose、permute、reshape、repeat、repeat_interleave

非contiguous操作 There are a few operations on Tensors in PyTorch that do not change the contents of a tensor, but change the way the data is organized. These operations include: narrow(), view(), expand() and transpose() permute() This is where the con…...

uni-app实现下拉刷新

业务逻辑如下&#xff1a; 1.在滚动容器中加入refresher-enabled属性&#xff0c;表示为开启下拉刷新 2.监听事件&#xff0c;添加refresherrefresh事件 3.在事件监听函数中加载数据 4.关闭动画&#xff0c;添加refresher-triggered属性&#xff0c;在数据请求前开启刷新动画…...

vue ts 应用梳理

文章目录 前言一、页面传值1.1 [props](https://cn.vuejs.org/guide/components/props.html)1.2 [emit](https://cn.vuejs.org/guide/components/events.html)1.3 [store](https://pinia.vuejs.org/zh/getting-started.html) 二、实时计算2.1 [watch](https://cn.vuejs.org/gui…...

CUDA12.4文档-全文翻译

本博客参考官方文档进行介绍,全网仅此一家进行中文翻译,走过路过不要错过。 官方网址:https://docs.nvidia.com/cuda/cuda-c-programming-guide/ 本文档分成多个博客进行介绍,在本人专栏中含有所有内容: https://blog.csdn.net/qq_33345365/category_12610860.html CU…...

【C 数据结构】循环链表

文章目录 【 1. 基本原理 】【 2. 循环链表的创建 】2.1 循环链表结点设计2.2 循环单链表初始化 【 3. 循环链表的 插入 】【 4. 循环单链表的 删除操作 】【 5. 循环单链表的遍历 】【 6. 实例 - 循环链表的 增删查改 】【 7. 双向循环链表 】 【 1. 基本原理 】 对于单链表以…...

Python列表

使用场景&#xff1a;列表是用来存储多组数据的 列表是可变类型 列表支持切片 1.基本规则 1.列表使用[]来表示 2.初始化列表&#xff1a;list [] 3.列表可以一次性存储多个数据&#xff1a;[数据1&#xff0c;数据2&#xff0c;数据3&#xff0c;…] 4.列表中的每一项&#…...

谈谈系列之金融直播展业畅想

近些年直播异常火热&#xff0c;对于各大中小型基金证券公司&#xff0c;也纷纷引入直播作为新型展业渠道。在这其中有一部分直接采用第三方云平台&#xff0c;也有少部分选择自建直播平台。当然自建直播平台也不是纯自研&#xff0c;大抵都是外购第三方厂商整体解决方案&#…...

【C 数据结构】双向链表

文章目录 【 1. 基本原理 】【 2. 双向链表的 创建 】实例 - 输出双向链表 【 3. 双向链表 添加节点 】【 4. 双向链表 删除节点 】【 5. 双向链表查找节点 】【 7. 双向链表更改节点 】【 8. 实例 - 双向链表的 增删查改 】 【 1. 基本原理 】 表中各节点中都只包含一个指针&…...

Leetcode刷题之消失的数字(C语言版)

Leetcode刷题之消失的数字&#xff08;C语言版&#xff09; 一、题目描述二、题目解析 一、题目描述 数组nums包含从0到n的所有整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗&#xff1f; 注意&#xff1a;本题相对书上原题稍作…...

LeetCode654:最大二叉树

题目描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 …...

AI禁区徘徊监测识别摄像机

AI禁区徘徊监测识别摄像机是一种基于人工智能技术的智能监控设备&#xff0c;用于监测禁止进入或逗留的区域。这种摄像机通过高清摄像头实时捕捉场景图像&#xff0c;利用AI算法对人员徘徊行为进行识别和监测&#xff0c;有助于提高安全防范水平&#xff0c;减少潜在的安全风险…...

【学习】什么是信创适配性测试?信创适配性测试的重要性有哪些?

随着信息技术的快速发展和广泛应用&#xff0c;信息技术应用创新&#xff08;信创&#xff09;已成为推动我国产业升级和经济发展的重要力量。在信创领域&#xff0c;适配性测试至关重要&#xff0c;它不仅关系到信创产品的质量和性能&#xff0c;还直接影响到用户的使用体验和…...

linux 配置服务开机启动

一、Centos 中配置进程开启启动 1、使用 systemd 服务&#xff1a; &#xff08;1&#xff09;创建一个名为 myapp.service 的服务文件&#xff1a; [Unit] DescriptionMyApp #描述 After #描述服务类别 [Service] Typefork…...

React中State管理的4 个关键解决方案

在 React 应用开发中,状态(state)管理是非常重要的一部分。合理地管理状态可以确保组件的行为正确,提高应用的可维护性和性能。然而,在实际使用 React 的 state 时,开发者常常会遇到一些常见的问题和陷阱。 本文将从解决问题的角度,总结 React 中 state 管理的4个关键技巧: 使…...

Testng测试框架(6)--@Factory动态地创建测试类的实例

工厂允许您动态地创建测试。例如&#xff0c;假设您想创建一个测试方法&#xff0c;该方法将多次访问网站上的某个页面&#xff0c;并且您希望使用不同的值来调用它。 public class TestWebServer {Test(parameters { "number-of-times" })public void accessPage(…...

Kubernetes(K8s)运维实战:案例解析与代码实践

一、引言 随着容器技术的普及&#xff0c;Kubernetes&#xff08;K8s&#xff09;作为容器编排领域的领军者&#xff0c;已成为企业运维不可或缺的工具。K8s以其强大的自动化管理、可扩展性和高可用性等特点&#xff0c;为运维人员提供了便捷、高效的管理手段。本文将结合具体案…...

nginx反向代理配置详解

首先配置端口 server {listen 3080; server_name 172.20.109.27 localhost;}为了解决刷新后显示404的问题&#xff0c;增加配置如下&#xff1a; location / {root html;index index.html index.htm;try_files $uri $uri.html $uri/ mongrel;}location mongrel {# ip…...

【LeetCode】单调栈类题目详解

所有题目均来自于LeetCode&#xff0c;刷题代码使用的Python3版本 单调栈 通常针对一维数组的问题&#xff0c;如果需要寻找一个元素右边或者左边第一个比自己大或者小的元素的位置&#xff0c;就可以使用单调栈&#xff0c;时间复杂度为O(n) 单调栈的本质是空间换时间&#…...

扩音器什么牌子音质好?领夹扩音器哪个品牌好性价比高?一次选对!

刚开始带课那几年&#xff0c;我对扩音器的重视程度其实不算高&#xff0c;更多精力都放在备课、安排课堂节奏和处理学生互动上。但课越上越多之后&#xff0c;我越来越清楚一件事&#xff1a;真正左右现场教学效率的&#xff0c;并不是板书有多整齐&#xff0c;也不是课件做得…...

【RS】ENVI5.6 栅格数据坐标转换实战:从加载到参数设置的完整指南

1. ENVI5.6坐标转换入门指南 第一次打开ENVI5.6时&#xff0c;面对密密麻麻的工具栏确实有点懵。记得去年处理一批无人机影像时&#xff0c;就遇到了坐标系不匹配的问题。当时折腾了半天才找到这个隐藏的坐标转换功能&#xff0c;今天就把完整的操作流程分享给大家。 ENVI5.6…...

v-md-editor进阶技巧:如何在Vue2中实现markdown与HTML的双向转换

Vue2项目中v-md-editor深度应用&#xff1a;Markdown与HTML双向转换实战指南 在内容管理系统、技术文档平台或博客应用中&#xff0c;Markdown与HTML格式的相互转换是开发者常遇到的核心需求。v-md-editor作为Vue生态中功能强大的Markdown编辑器&#xff0c;其双向转换能力往往…...

5步实现消息永久可见:微信QQ防撤回设置完全指南

5步实现消息永久可见&#xff1a;微信QQ防撤回设置完全指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gitcode.com/GitH…...

Big Vision完全指南:从零掌握Google顶级视觉模型训练框架

Big Vision完全指南&#xff1a;从零掌握Google顶级视觉模型训练框架 【免费下载链接】big_vision Official codebase used to develop Vision Transformer, SigLIP, MLP-Mixer, LiT and more. 项目地址: https://gitcode.com/gh_mirrors/bi/big_vision Big Vision是Goo…...

UDOP-large开源可部署:微软UDOP-large镜像免配置一键上线教程

UDOP-large开源可部署&#xff1a;微软UDOP-large镜像免配置一键上线教程 1. 引言 如果你经常需要处理英文文档&#xff0c;比如整理一堆学术论文、从发票里提取关键信息&#xff0c;或者把表格数据整理成结构化格式&#xff0c;那你一定知道这活儿有多费时费力。传统方法要么…...

Qwen2.5-0.5B Instruct在软件测试中的自动化应用

Qwen2.5-0.5B Instruct在软件测试中的自动化应用 1. 引言 软件测试是确保产品质量的关键环节&#xff0c;但传统测试方法往往耗时费力。开发人员需要编写大量测试用例&#xff0c;执行重复的测试流程&#xff0c;还要分析复杂的测试结果。这个过程不仅枯燥&#xff0c;还容易…...

实测Qwen3-VL-30B:上传图片就能问,智能识别效果惊艳

实测Qwen3-VL-30B&#xff1a;上传图片就能问&#xff0c;智能识别效果惊艳 你有没有想过&#xff0c;给电脑看一张照片&#xff0c;它不仅能告诉你照片里有什么&#xff0c;还能像朋友一样跟你讨论照片里的故事&#xff1f;比如&#xff0c;你拍了一张晚餐的照片&#xff0c;…...

从废弃电视盒到全能家庭服务器:Amlogic S9xxx Armbian的5种创意改造玩法

从废弃电视盒到全能家庭服务器&#xff1a;Amlogic S9xxx Armbian的5种创意改造玩法 【免费下载链接】amlogic-s9xxx-armbian amlogic-s9xxx-armbian: 该项目提供了为Amlogic、Rockchip和Allwinner盒子构建的Armbian系统镜像&#xff0c;支持多种设备&#xff0c;允许用户将安卓…...

显卡健康体检师:用memtest_vulkan给你的GPU做全面显存检测

显卡健康体检师&#xff1a;用memtest_vulkan给你的GPU做全面显存检测 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 你是否曾经遇到过游戏突然崩溃、画面出现…...