2012-03-15 16 views
9

Estoy usando Microsoft Interop para leer los datos.Microsoft Interop: Excel Column Names

En excel-sheet, los nombres de las columnas son como A, B, C, D, ...., AA, AB, .... y así sucesivamente. ¿Hay alguna forma de leer estos nombres de columnas?

Si necesita cualquier otra información, por favor hágamelo saber.

Saludos, Priyank

+2

¿Qué quiere decir, "leer los nombres de las columnas"? ¿Quieres saber en qué columna estás? – Jetti

+0

@Jetti: sí, quiero leer los nombres de las columnas y mostrarlas al usuario en una lista desplegable. –

+0

Por nombres de columna ... te refieres a lo que está en la fila 1 para cada columna, ¿correcto? – Jetti

Respuesta

9
 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); 
      }      
     } 
    } 

Esto pondrá el nombre de cada columna en una List<string> que luego se puede unir a un cuadro desplegable.

+0

¿Dónde encuentra el doc concerniente a todo el espacio de nombres interop.excel? Al mirar el MSDN, no puedo encontrar nada interesante. – squelos

+0

@squelos puede encontrar información [de MSDN aquí] (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel (v = office.11) .aspx). Otra información que obtuve de un libro. También tengo una publicación de blog que puede leer [aquí] (http://dontbreakthebuild.com/2011/01/30/excel-and-c-interop-with-net-4-how-to-read-data- from-excel /) que trata de leer datos de Excel con C# y .NET 4.0 – Jetti

+0

@Jetti: esto está funcionando perfectamente :) :) –

-1

También puede leer la columna por el índice

dejar que su objeto Hoja de trabajo de Excel es "excelWorksheet" a continuación, puede acceder a él como

para el establecimiento de un valor que puede utilizar

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

para obtener un valor que puede utilizar

cadena resultado = [excelWorksheet.Cells rowIndex, columnIndex] .Value;

Recuerde que los campos se generan dinámicamente por lo que puede mostrar error en la escritura de su código, pero ignoran que

por ejemplo, que desea establecer el texto en la fila hoja de Excel 1 & la columna 2 a continuación

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

lo he utilizado & funciona perfectamente

+1

-1, no estás respondiendo la pregunta en absoluto. – nawfal

Cuestiones relacionadas