C# excel操作

使用库

Spire.Xls

下载

示例数据

代码示例

1.删除列

代码

        private static void DeleteExcelColumns1(string excelPath) {if (excelPath.Length == 0) {Console.WriteLine("excel文件路径为空");}else{Console.WriteLine("删除列方法1:保留第一列,删除其他列");Workbook workbook = new Workbook();workbook.LoadFromFile(excelPath);//获取第一张工作表Worksheet sheet = workbook.Worksheets[0];int ColumnsLength = sheet.Columns.Count();//删除除了第一行以外的其他列,因为删除的操作是在上一步的结果上进行的操作for (int i = 2; i <= ColumnsLength; i++){sheet.DeleteColumn(2);}//设置数据自适应列宽sheet.AllocatedRange.AutoFitColumns();//修改后的保存为csv文件sheet.SaveToFile(Path.GetDirectoryName(excelPath)+"/删除列方法1"+Path.GetFileNameWithoutExtension(excelPath)+".csv", ",", Encoding.UTF8);}           }private static void DeleteExcelColumns2(string excelPath){if (excelPath.Length == 0){Console.WriteLine("excel文件路径为空");}else{Console.WriteLine("删除列方法2:保留第一列,删除其他列");Workbook workbook = new Workbook();workbook.LoadFromFile(excelPath);//获取第一张工作表Worksheet sheet = workbook.Worksheets[0];sheet.DeleteColumn(2,9);//设置数据自适应列宽sheet.AllocatedRange.AutoFitColumns();//修改后的保存为csv文件sheet.SaveToFile(Path.GetDirectoryName(excelPath) + "/删除列方法2" + Path.GetFileNameWithoutExtension(excelPath) + ".csv", ",", Encoding.UTF8);}}

结果

2.删除行

代码

        private static void DeleteExcelRow1(string excelPath){if (excelPath.Length == 0){Console.WriteLine("excel文件路径为空");}else{Console.WriteLine("删除行方法1:保留第一行,删除其他行");Workbook workbook = new Workbook();workbook.LoadFromFile(excelPath);//获取第一张工作表Worksheet sheet = workbook.Worksheets[0];int ColumnsLength = sheet.Rows.Count();//删除除了第一行以外的其他列,因为删除的操作是在上一步的结果上进行的操作for (int i = 2; i <= ColumnsLength; i++){sheet.DeleteRow(2);}//设置数据自适应列宽sheet.AllocatedRange.AutoFitColumns();//修改后的保存为csv文件sheet.SaveToFile(Path.GetDirectoryName(excelPath) + "/删除行方法1" + Path.GetFileNameWithoutExtension(excelPath) + ".csv", ",", Encoding.UTF8);}}private static void DeleteExcelRow2(string excelPath){if (excelPath.Length == 0){Console.WriteLine("excel文件路径为空");}else{Console.WriteLine("删除行方法2:保留第一行,删除其他行");Workbook workbook = new Workbook();workbook.LoadFromFile(excelPath);//获取第一张工作表Worksheet sheet = workbook.Worksheets[0];sheet.DeleteRow(2, 9);//设置数据自适应列宽sheet.AllocatedRange.AutoFitColumns();//修改后的保存为csv文件sheet.SaveToFile(Path.GetDirectoryName(excelPath) + "/删除行方法2" + Path.GetFileNameWithoutExtension(excelPath) + ".csv", ",", Encoding.UTF8);}}private static void DeleteExcelRow3(string excelPath){if (excelPath.Length == 0){Console.WriteLine("excel文件路径为空");}else{Console.WriteLine("删除行方法3:保留第一行,删除其他行");Workbook workbook = new Workbook();workbook.LoadFromFile(excelPath);//获取第一张工作表Worksheet sheet = workbook.Worksheets[0];int[] delrows = { 2, 3 ,4,5,6,7,8,9,10};sheet.DeleteRows(delrows);//设置数据自适应列宽sheet.AllocatedRange.AutoFitColumns();//修改后的保存为csv文件sheet.SaveToFile(Path.GetDirectoryName(excelPath) + "/删除行方法3" + Path.GetFileNameWithoutExtension(excelPath) + ".csv", ",", Encoding.UTF8);}}

结果

修改表

代码

        private static void ChangeExcelHeader1(string excelPath){if (excelPath.Length == 0){Console.WriteLine("excel文件路径为空");}else{Console.WriteLine("修改表头");Workbook workbook = new Workbook();workbook.LoadFromFile(excelPath);//获取第一张工作表Worksheet sheet = workbook.Worksheets[0];string value0 = sheet.Cells[0].Value;Console.WriteLine(value0);string value11 = sheet.Cells[11].Value;Console.WriteLine(value11);sheet.Cells[1].Value = "12";string valuesA1 = sheet.Range["A1"].Value;Console.WriteLine(valuesA1);sheet.Range["C1"].Value = "13";//设置数据自适应列宽sheet.AllocatedRange.AutoFitColumns();//修改后的保存为csv文件sheet.SaveToFile(Path.GetDirectoryName(excelPath) + "/修改表头" + Path.GetFileNameWithoutExtension(excelPath) + ".csv", ",", Encoding.UTF8);}}

结果

参考文献

C#/VB.NET 删除 Excel 中的行和列

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

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

相关文章

好的摄影师都会iPhone 8和iOS 11的这三项功能

众所周知&#xff0c;苹果的手机像素一直处于智能手机摄影的前沿&#xff0c;在即将到来的九月&#xff0c;苹果公司准备证明他拥有最好的相机技术。 虽然我们还不知道iPhone 8摄像头的具体细节&#xff0c;如几百万像素、光学变焦是多少&#xff0c;但我们确实知道苹果正在给i…

Webmin(CVE-2019-15107)远程命令执行漏洞复现

漏洞编号 CVE-2019-15107 webmin介绍 什么是webmin Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作http://www.webmin.com/Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。是一个基于Web的界面…

Rust入门基础

文章目录 Rust相关介绍为什么要用Rust&#xff1f;Rust的用户和案例 开发环境准备安装Rust更新与卸载Rust开发工具 Hello World程序编写Rust程序编译与运行Rust程序 Cargo工具Cargo创建项目Cargo构建项目Cargo构建并运行项目Cargo检查项目Cargo为发布构建项目 Rust相关介绍 为…

Spring Boot自动加载

问&#xff1a;自动装配如何实现的&#xff1f; 答&#xff1a;简单来说就是自动去把第三方组件的Bean装载到IOC容器中&#xff0c;不需要开发人员再去写Bean相关的配置&#xff0c;在springboot应用里面只需要在启动类上去加上SpringBootApplication注解&#xff0c;就可以去实…

lvgl8.3.5版本 设置界面滚动条显示状态

LV_SCRLBAR_MODE_OFF 一直都不显示滚动条 LV_SCRLBAR_MODE_ON 一直都显示滚动条 LV_SCRLBAR_MODE_DRAG 拖动页面时显示滚动条 LV_SCRLBAR_MODE_AUTO 当可滚动容器的大小足以滚动时显示滚动条 LV_SCRLBAR_MODE_HIDE 暂时隐藏滚动条 LV_SCRLBAR_MODE_UNHIDE 取消隐藏以前隐藏…

计算机毕业设计选什么题目好?springboot 幼儿园管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

简单使用 Hugo 博客

之前用过 hugo&#xff0c;本次来分享一波&#xff0c;确实简单好用&#xff0c;可以持续使用&#xff0c;尤其是喜欢 GO语言的同学 hugo Hugo是一个用 Go语言 编写的静态网站生成器&#xff0c;可以快速地生成高效、安全和易于管理的静态网站。Hugo具有速度快、可定制性强、…

Hydra参数

kali的hyda参数 参数&#xff1a; hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns][-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT] -R 继续从上一次进度接着破解。 -S 采用SSL链接。 -s PORT 可通…

1.2 switch实现两个数的四则运算

注意&#xff1a; 1、每一个case后面要有break 2、/运算的时候注意分母不能为0 int a, b;char c;cin>>a>>b>>c;switch (c){case :cout << a << << b << << a b << endl;break;case -:cout << a << - …

【C++进阶】:特殊类的设计

特殊类的设计 一.设计一个类不能被拷贝二.设计一个类只能在堆上创建对象三.设计一个类只能在栈上创建4.设计一个类不能被继承五.设计一个类只能有一个对象(单例模式) 一.设计一个类不能被拷贝 拷贝只会放生在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载&#xff0c…

leetcode做题笔记173. 二叉搜索树迭代器

实现一个二叉搜索树迭代器类BSTIterator &#xff0c;表示一个按中序遍历二叉搜索树&#xff08;BST&#xff09;的迭代器&#xff1a; BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

MySQL刷题的一些注意事项

1、AVG(column_name)&#xff0c;类似的还有MAX、COUNT都是需要加括号处理的 2、GROUP BY语句如果有两个及以上的分组&#xff0c; GROUP BY column1_name, column2_name是可行的 但是GROUP BY column1_name and column2_name是不可行的 3、WHERE语句如果需要挑选大于20小于2…

建立一个新的高阶数学教授模式,知其然,知其用,知其之所以然,知其所以然

1. 传统常用的模式 概念&#xff0c;性质&#xff0c;定理&#xff0c;定理证明&#xff0c;定理应用&#xff1b; 这个学习模式挺好的&#xff0c;但是定理证明过程往往很冗长&#xff0c;而且不易记忆&#xff0c;也就是说&#xff0c;即使推导了定理&#xff0c;初学者也记…

vue补充继上一篇

组合式API-reactive和ref函数 1.reactive() 作用&#xff1a;接受对象类型数据的参数传入并返回一个响应式的对象 1.从vue包中导入reactive函数 2.在<script setup>中执行reactive函数并传入类型为对象的初始值&#xff0c;并使用变量接受返回值。 2.ref() 作用&am…

第18篇ESP32platformio-arduino框架-ili9488-3.5lcd显示时间天气

第18篇ESP32platformio-arduino框架-ili9488-lcd显示时间天气 第18篇esp32ili9488lcd显示时间天气 连接方法&#xff1a; 修改WIFI&#xff1a; 关键代码 void setup() {Serial.begin(115200);WiFi.mode(WIFI_STA);WiFi.begin(ssid,password);Serial.print("\r\nConnect…

java中将数组转换成字符串

方法1&#xff1a;使用StringBuilder拼接 基本类型和引用类型兼容 int[] arr {1,2,4,6,9};StringBuilder sb new StringBuilder();for (int i 0; i < arr.length ; i) {if (i!arr.length-1){sb.append(arr[i]",");}else {sb.append(arr[i]);}}System.out.prin…

136. 只出现一次的数字

给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 思路&#xff1a;   使用异或操作去…

【vb.net】轻量JSON序列及反序列化

这个代码写的有点时间了&#xff0c;可能有点小bug&#xff0c;欢迎评论区反馈 作用是将Json文本转化成一个HarryNode类进行相关的Json对象处理或者读取&#xff0c;也可以将一个HarryNode对象用ToString变为Json文本。 举例&#xff1a; 1、读取节点数据 dim harryNode N…

Axios 封装

请注意以下文件夹&#xff1a; utils下的setToken.js 是token封装&#xff08;封装 Token-CSDN博客&#xff09;,service.js 是axios封装。 Axios封装&#xff1a; 1.安装axios 在项目终端下 输入&#xff1a; npm install axios --save 2.在main.js全局引入axios import…

12.JVM

一.JVM类加载机制:把类从硬盘文件加载到内存中 1.java文件,编写时是一个.java文件,编译后现成一个.class的字节码文件,运行的时候,JVM就会读取.class文件,放到内存中,并且构造类对象. 2.类加载流程: a.加载:找到.class文件,打开文件,读取内容,尝试解析文件内容. b.验证:检查…