在 C# 中获取 Excel 文件标记的值

本文关键字:文件 Excel 获取 | 更新日期: 2023-09-27 18:30:43

我需要采取一些已经在 excel 文件中设置的标记。我正在使用 OleDbDataAdapter 加载文件,然后我填写了一个数据表,但我在那里找不到标记列表。谁能告诉我如何访问这样的列表,或者即使可能?谢谢。

通过标记,我理解了一对行/列的名称,甚至是行/列的咏叹调。

我是这样做的:

        string FileName = Environment.CurrentDirectory + @"'Release.xls";
        string currentSheet = "BOX";
        Application excelApp = new Application();
        Workbooks excelWorkbooks = excelApp.Workbooks;
        Workbook report = excelWorkbooks.Open(FileName, 0, false, 5, "", "", true, XlPlatform.xlWindows, "", true, false, 0, false, false, false);
        Worksheet ws = report.Sheets[currentSheet];

所有名称都用 :

        public static List<Name> GetNamedRanges(Workbook activeWorkbook)
    {
        List<Name> namedRanges = new List<Name>();
        Name name;
        for (int i = 0; i < activeWorkbook.Names.Count; i++)
        {
            name = activeWorkbook.Names.Item(i + 1);
            namedRanges.Add(name);
        }
        return namedRanges;
    }

请注意,每次运行程序时都会启动一个 excel 进程,并且最后不会关闭。这就是为什么你必须使用一个技巧:

            private static void CheckExcellProcesses(ref Hashtable myHashtable)
    {
        Process[] AllProcesses = Process.GetProcessesByName("excel");
        myHashtable = new Hashtable();
        int iCount = 0;
        foreach (Process ExcelProcess in AllProcesses)
        {
            myHashtable.Add(ExcelProcess.Id, iCount);
            iCount = iCount + 1;
        }
    }

在启动应用程序时验证进程,并在实例化新 Excel 进程后再次验证进程。最后杀死第二个列表中存在的那个,第一个列表中不存在的那个。

好的,就是这样。谢谢。

在 C# 中获取 Excel 文件标记的值

如果您通过 ADO.NET 访问 Excel 工作表,则无法访问"标记"。您必须将Excel工作表视为表格。