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

【C#】操作Execl和Word文件-2

在C#中,可以使用不同的库来操作Excel和Word文件,并执行增删改查等操作。以下是一些常用的方法:

操作Excel文件
使用EPPlus库
安装引用:
using OfficeOpenXml;

示例代码:
读取数据
插入新行
更新现有单元格
删除行

public void ExcelOperations()
{
string filePath = "C:\\example.xlsx";

    using (var package = new ExcelPackage(new FileInfo(filePath)))
{
var worksheet = package.Workbook.Worksheets[0];

        // 读取数据
Console.WriteLine("Data from A1: " + worksheet.Cells["A1"].Value);

        // 插入新行
int lastRow = worksheet.Dimension.End.Row;
worksheet.Cells[lastRow + 1, 1].Value = "New Row Data";

// 更新现有单元格
worksheet.Cells[2, 2].Value = "Updated Value";

        // 删除一行
if (lastRow > 1)
{
worksheet.DeleteRow(lastRow);
}

        package.Save();
}
}

操作Word文件

使用Microsoft.Office.Interop.Word库

安装引用:
using Microsoft.Office.Interop.Word;

示例代码:
读取文本
插入新段落
更新现有文本
删除段落

public void WordOperations()
{
string filePath = "C:\\example.docx";

    Application wordApp = new Application();
Document doc;

    // 打开已存在的Word文件
if (System.IO.File.Exists(filePath))
{
doc = wordApp.Documents.Open(filePath);
}
else
{
doc = wordApp.Documents.Add();
}

    Range range;

try
{
// 读取文本
Console.WriteLine("First paragraph: " + doc.Paragraphs[1].Range.Text);

        // 插入新段落
Word.Range newParagraphRange = doc.Content;
newParagraphRange.InsertAfter("\nNew Paragraph Data");

// 更新现有文本
range = doc.Paragraphs[2].Range;
range.Text += " Updated Text";

// 删除一个段落
if (doc.Paragraphs.Count > 1)
{
doc.Paragraphs[1].Range.Delete();
}
}
finally
{
// 关闭文档并保存更改
doc.SaveAs2(filePath);
doc.Close();

        wordApp.Quit();
}
}

通过这些示例代码,您可以执行Excel和Word文件的增删改查操作。注意,在使用Microsoft.Office.Interop.Word时,请确保已经安装了Office软件,并且需要管理员权限来运行相关程序。

 

http://www.xdnf.cn/news/16975.html

相关文章:

  • mongodb源代码分析创建db流程分析
  • HTTP GET 请求教程
  • 数据结构-单向链表
  • NDK-参数加密和签名校验
  • Linux(centos)安全狗
  • 线程互斥锁:守护临界区的关键
  • Mybatis 简单练习,自定义sql关联查询
  • 2025年信创政策解读:如何应对国产化替代挑战?(附禅道/飞书多维表格/华为云DevCloud实战指南)
  • 【C#】操作Execl和Word文件-1
  • 白杨SEO:百度搜索开放平台发布AI计划是什么?MCP网站红利来了?顺带说说其它
  • AWS Lambda Function 全解:无服务器计算
  • 如何使用 DBeaver 连接 MySQL 数据库
  • script标签放在header里和放在body底部里有什么区别?
  • Spring之【Bean的实例化方式】
  • Azure DevOps - 使用 Ansible 轻松配置 Azure DevOps 代理 - 第6部分
  • 设计模式(一)——抽象工厂模式
  • 机器学习实战:逻辑回归深度解析与欺诈检测评估指标详解(二)
  • 16.8 华为昇腾CANN架构深度实战:3大核心引擎解析与性能优化216%秘籍
  • 机器学习【六】readom forest
  • Dubbo 3.x源码(32)—Dubbo Provider处理服务调用请求源码
  • Ribbon 核心原理与架构详解:服务负载均衡的隐形支柱
  • 解决MySQL删除/var/lib/mysql下的所有文件后无法启动的问题
  • Flink从Kafka读取数据的完整指南
  • 段落注入(Passage Injection):让RAG系统在噪声中保持清醒的推理能力
  • 【动态规划 | 回文字串问题】动态规划解回文问题的核心套路
  • 基于落霞归雁思维框架的自动化测试实践与探索
  • 项目一:Python实现PDF增删改查编辑保存功能的全栈解决方案
  • 使用 SecureCRT 连接华为 eNSP 模拟器的方法
  • 浅谈 Python 中的 next() 函数 —— 迭代器的驱动引擎
  • 嵌入式开发学习———Linux环境下IO进程线程学习(三)