基于.NET 8.0,C#中Microsoft.Office.Interop.Excel来操作office365的excel

开发环境:

Visual Studio 2022

office365

项目模板:WPF应用程序

框架:.NET 8.0

依赖:Microsoft.Office.Interop.Excel

注意:

1.使用Microsoft.Office.Interop.Excel库时,服务器或电脑里面必须安装得有Excel

管理Nuget程序包中Microsoft.Office.Interop.Excel目前没有16.0版本(2024.10月),所以不能对office365使用。以下是版本对应关系。

|----------------------------------|------------------------------------------------------------------------|
| Microsoft.Office.Interop.Excel版本 | 对应的Excel版本 |
| 14.0.0 | Excel 2010 (Office 2010) |
| 15.0.0 | Excel 2013 (Office 2013) |
| 16.0.0 | Excel 2016、Excel 2019、Excel 365 (Office 2016, Office 2019, Office 365) |

在Visual Studio 2022 中导入Microsoft.Office.Interop.Excel16.0版本的依赖:

打开COM引用

勾选Microsoft Excel 16.0 Object Library后确定。

代码:

1.导入依赖:

cs 复制代码
using System;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;

2.基本框架:

cs 复制代码
var excelApp = new Excel.Application();
string excel_file_path = @"C:\path\to\your\file.xlsx";
Excel.Workbook workbook = excelApp.Workbooks.Open(excel_file_path);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//操作sheet1
try{
    /*
    具体对excel的添加操作代码
    */
    workbook.Save();// 保存更改
}
catch (Exception ex) {
    Debug.WriteLine($"发生错误: {ex.Message}");
}
finally { // 确保释放 COM 对象
    if (workbook != null) { 
        workbook.Close(false);
        Marshal.ReleaseComObject(workbook);
}
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
// 强制垃圾回收以确保所有 COM 对象被清理
GC.Collect();
GC.WaitForPendingFinalizers();

3.单元格读写

cs 复制代码
worksheet.Cells[1, 1] = "1"; // 行1,列1,即A1单元格写入数字1
string cellValue = worksheet.Cells[1, 1].Value.ToString(); // 行1,列1,即读取A1单元格
string cellValue2 = worksheet.Cells[1, "A"].Value.ToString(); // 行1,A列,即读取A1单元格

4.excel转PDF

导入依赖

cs 复制代码
using System.IO;

代码在workbook.Save();// 保存更改 后执行

cs 复制代码
 string pdfFilePath = System.IO.Path.ChangeExtension(excel_file_path, ".pdf");//将excel后缀名改为PDF
workbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, pdfFilePath);//另存为PDF
相关推荐
weixin_307779131 小时前
使用C#实现从Hive的CREATE TABLE语句中提取分区字段名和数据类型
开发语言·数据仓库·hive·c#
云心雨禅2 小时前
Vim操作指令全解析
编辑器·vim·excel
时光追逐者2 小时前
在 Blazor 中使用 Chart.js 快速创建数据可视化图表
开发语言·javascript·信息可视化·c#·.net·blazor
与火星的孩子对话3 小时前
Unity3D开发AI桌面精灵/宠物系列 【三】 语音识别 ASR 技术、语音转文本多平台 - 支持科大讯飞、百度等 C# 开发
人工智能·unity·c#·游戏引擎·语音识别·宠物
response_L3 小时前
国产系统统信uos和麒麟v10在线打开word给表格赋值
java·c#·word·信创·在线编辑
MasterNeverDown3 小时前
Swagger2Md:让WebAPI文档生成变得轻松高效
c#
向宇it3 小时前
【零基础入门unity游戏开发——2D篇】2D 游戏场景地形编辑器——TileMap的使用介绍
开发语言·游戏·unity·c#·编辑器·游戏引擎
安分小尧3 小时前
[特殊字符] 使用 Handsontable 构建一个支持 Excel 公式计算的动态表格
前端·javascript·react.js·typescript·excel
hello_simon7 小时前
在线小白工具,PPT转PDF支持多种热门工具,支持批量转换,操作简单,高效适合各种需求
pdf·html·powerpoint·excel·pdf转html·excel转pdf格式
Tttian62210 小时前
Python办公自动化(3)对Excel的操作
开发语言·python·excel