欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 基于.NET 8.0,C#中Microsoft.Office.Interop.Excel来操作office365的excel

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

2024/10/25 21:08:46 来源:https://blog.csdn.net/lylelo/article/details/143138756  浏览:    关键词:基于.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.0Excel 2010 (Office 2010)
15.0.0Excel 2013 (Office 2013)
16.0.0Excel 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.导入依赖:

using System;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;

2.基本框架:

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);
}
workbook.Close(false);//关闭工作簿时不保存更改
Marshal.ReleaseComObject(workbook);
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
// 强制垃圾回收以确保所有 COM 对象被清理
GC.Collect();
GC.WaitForPendingFinalizers();

3.单元格读写

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

4.excel转PDF

导入依赖

using System.IO;

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

 string pdfFilePath = System.IO.Path.ChangeExtension(excel_file_path, ".pdf");//将excel后缀名改为PDF
workbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, pdfFilePath);//另存为PDF

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com