Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中获取Excel文件标记的值#_C#_Ado.net_Oledb - Fatal编程技术网

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

C# 在C中获取Excel文件标记的值#,c#,ado.net,oledb,C#,Ado.net,Oledb,我需要在excel文件中设置一些标记。我正在用OleDbDataAdapter加载文件,然后填充一个数据表,但在那里找不到标记列表。有谁能告诉我,我怎样才能获得这样一个列表,或者即使有可能?谢谢 通过标记,我理解一对行/列甚至一个行/列的名称 我是这样做的: string FileName = Environment.CurrentDirectory + @"\Release.xls"; string currentSheet = "BOX"; A

我需要在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流程实例化后再次验证流程。最后,杀死第二个列表中存在但第一个列表中不存在的一个


好了,就这样。谢谢

如果通过ADO.NET访问Excel工作表,则无法访问“标记”。您必须将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;
        }
    }