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;就可以去实…

计算机毕业设计选什么题目好?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 可通…

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

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

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

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

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…

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.验证:检查…

C# PortraitModeFilter (人物图片)背景模糊

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Windows.Forms; us…

Marin说PCB之CoilcraftBourns POC 电感的性能对比

十一小长假本来是一件美好事情。可是天有不测风云&#xff0c;小编我却有祸兮来了。本来是公司的硬件同事强哥要回以色列了&#xff0c;最近他们国家那边都在打仗&#xff0c;强哥本着舍身为国的精神回国抗战去了。小编我就想着在他回国之前搞了篮球比赛送别一下他呢&#xff0…

利达卓越:以数字金融,追梦新未来

秉持初心、勇敢前行,便能如火炬照彻黑暗,在平凡的生活中不断创新、保持优势,一步步走向梦想的远方。在金融投资领域,利达卓越广招贤才,坚持创新的原则,以数字技术为金融赋能,与多方市场参与建立长期合作关系,为推动全球经济和社会发展贡献力量,以团队金融优势续写时代华美篇章,…

数据库安全-RedisHadoopMysql未授权访问RCE

目录 数据库安全-&Redis&Hadoop&Mysql&未授权访问&RCE定义漏洞复现Mysql-CVE-2012-2122 漏洞Hadoop-配置不当未授权三重奏&RCE 漏洞 Redis-未授权访问-Webshell&任务&密匙&RCE 等漏洞定义&#xff1a;漏洞成因漏洞危害漏洞复现Redis-未授权…

【计算机组成体系结构】电路基本原理与加法器设计

一、算术逻辑单元—ALU 1.基本的逻辑运算&#xff08;1bit的运算&#xff09; 基本逻辑运算分为&#xff0c;与、或、非。大家应该很熟悉了&#xff0c;与&#xff1a;全1为1&#xff0c;否则为0。或&#xff1a;全0为0&#xff0c;否则为1。非&#xff1a;取反。三个基本的逻…

Unity关键词语音识别

一、背景 最近使用unity开发语音交互内容的时候&#xff0c;遇到了这样的需求&#xff0c;就是需要使用语音关键字来唤醒应用程序&#xff0c;然后再和程序做交互&#xff0c;有点像智能音箱的意思。具体的技术方案方面&#xff0c;也找了一些第三方的服务&#xff0c;比如百度…