提取excel打开的文件路径列表

动作需求 · 895 次浏览
KBC 创建于 2024-04-25 20:47

想实现一个提取excel打开的文件路径列表,不想提取wps的,AI给了个代码,如下,这个代码可以获取到excel列表,但是如果是先打开wps文件,它优先获取wps的,而不获取excel,如果先打开excel,就可以正常获取。我找AI修改代码,怎么修改也不对。实在是无语了。

//.cs  文件类型,便于外部编辑时使用
// 引用必要的命名空间
using System.Collections.Generic;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;

// Quicker将会调用的函数
public static string Exec(string paramValue)
{
    List<string> excelFilePaths = new List<string>();

    // 尝试获取 Excel 的文件路径
    try
    {
        Microsoft.Office.Interop.Excel.Application excelApplication = (Microsoft.Office.Interop.Excel.Application)Marshal.GetActiveObject("Excel.Application");
        if (excelApplication != null)
        {
            foreach (Workbook workbook in excelApplication.Workbooks)
            {
                excelFilePaths.Add(workbook.FullName);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Excel 获取失败: {ex.Message}");
        Console.WriteLine($"堆栈跟踪: {ex.StackTrace}");
    }

    return string.Join(Environment.NewLine, excelFilePaths); // 使用环境换行符来分隔路径
}


回复内容
CL 2024-04-26 07:23
#1

WPS不同版本有不同的表现,有的会使用Excel的Application类,从而造成混乱。 建议只使用office。

回复主贴