Microsoft Interop: имена столбцов Excel - PullRequest
9 голосов
/ 15 марта 2012

Я использую Microsoft Interop для чтения данных.

В Excel-листе имена столбцов похожи на A, B, C, D, ...., AA, AB, ....и так далее.Можно ли как-нибудь прочитать названия столбцов?

Если вам нужна какая-либо другая информация, пожалуйста, дайте мне знать.

С уважением, Приянк

Ответы [ 2 ]

11 голосов
/ 15 марта 2012
     Excel.Application xlApp = new Excel.Application();
     Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("workbookname");
     Excel.Worksheet xlWorksheet = xlWorkbook.Sheets[1]; // assume it is the first sheet
     int columnCount = xlWorksheet.UsedRange.Columns.Count;
     List<string> columnNames = new List<string>();
     for (int c = 1; c < columnCount; c++)
     {
         if (xlWorksheet.Cells[1, c].Value2 != null)
         {
             string columnName = xlWorksheet.Columns[c].Address;
             Regex reg = new Regex(@"(\$)(\w*):");
             if (reg.IsMatch(columnName))
             {
                 Match match = reg.Match(columnName);             
                 columnNames.Add(match.Groups[2].Value);
             }                      
        }
     }

Это поместит имя каждого столбца в List<string>, который затем можно привязать к раскрывающемуся списку.

0 голосов
/ 14 августа 2013

Вы также можете прочитать столбец по индексу

разрешить вашему рабочему листу Excel объект "excelWorksheet" , затем вы можете получить к нему доступ как

для установки значения, которое вы можетеиспользуйте

excelWorksheet.Cells [rowindex, columnindex] .Value = "test";

для получения значения, которое вы можете использовать

string result = excelWorksheet.Cells [rowindex, columnindex] .Value;

Помните, что поля генерируются динамически , поэтому может отображаться ошибка при написании кода, но игнорируйте

например, вы хотите установить текст в строке листа Excel 1 и столбце 2, затем

excelWorksheet.Cells [1, 2] .Value = "test";

Я использовал егои это прекрасно работает

...