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

【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.dtcms.com/a/314530.html

相关文章:

  • 深入理解基础 IO:从 C 库函数到系统调用的全景指南
  • MCP安全机制深度剖析:权限控制与数据保护最佳实践
  • 液体泄漏识别误报率↓75%:陌讯多模态融合算法实战解析
  • vllm启动Qwen/Qwen3-Coder-30B-A3B-Instruct并支持工具调用
  • vue3 elementPlus el-dialog添加拖拽
  • Python实现Word转PDF全攻略:从入门到实战
  • 【人工智能99问】什么是Post-Training,包含哪些内容?(19/99)
  • 机器学习(12):拉索回归Lasso
  • 墨者学院SQL过滤字符后手工绕过漏洞测试(万能口令)
  • 【2025/08/04】GitHub 今日热门项目
  • vue3+vue-flow制作简单可拖拽可增删改流程图
  • 基于Matlab图像处理的液晶显示器表面缺陷检测与分类研究
  • 使用 SecureCRT 连接华为 eNSP 模拟器的方法
  • 【测试】⽤例篇
  • Android Telephony 框架与横向支撑层
  • SpringBoot+SpringMVC常用注解
  • 多线程(线程的创建与常见方法的使用)
  • sqli-labs靶场less29~less35
  • milvus client操作简单示例
  • 数据与模型优化随机森林回归进行天气预测
  • PyTorch深度学习实战(48)——基于Transformer实现机器翻译
  • 1.kotlin数组、集合常用方法
  • Day31:文件的规范拆分与写法
  • 三维模型轻量化双杀技:GISBox的纹理压缩与顶点压缩联合
  • 交叉验证:原理、作用与在机器学习流程中的位置
  • 【笔记】ROS1|1 ROS基本命令介绍及创建工作空间与功能包【旧文转载】
  • 从知识管理到智能协作:Gitee Wiki如何重塑软件研发效率范式
  • AI聊天:虚拟主播的角色提示词
  • HTTPS有哪些优点
  • LLM嵌入特征工程