2012-03-15 6 views
9

Sto usando Microsoft Interop per leggere i dati.Microsoft Interop: nomi di colonne Excel

In Excel i nomi delle colonne sono come A, B, C, D, ...., AA, AB, .... e così via. C'è un modo per leggere questo nome di colonna?

Se avete bisogno di altre informazioni vi preghiamo di farmelo sapere.

saluti, Priyank

+2

Che cosa vuoi dire, "leggere i nomi delle colonne"? Vuoi sapere in quale colonna sei? – Jetti

+0

@Jetti: sì, voglio leggere i nomi delle colonne e visualizzarle all'utente in un elenco a discesa. –

+0

Per nome colonna ... vuoi dire cosa c'è nella riga 1 per ogni colonna, corretto? – Jetti

risposta

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

Questo metterà ogni nome di colonna in una List<string> che sarà poi possibile associare a una casella a discesa.

+0

Dove trovi il doc riguardante l'intero spazio dei nomi interop.excel? Guardando il MSDN, non riesco a trovare nulla di interessante. – squelos

+0

@squelos è possibile trovare alcune informazioni [da MSDN qui] (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel (v = office.11) .aspx). Altre informazioni che ho ricevuto da un libro. Ho anche un post sul blog che puoi leggere [qui] (http://dontbreakthebuild.com/2011/01/30/excel-and-c-interop-with-net-4-how-to-read-data- da-excel /) che si occupa della lettura dei dati di Excel con C# e .NET 4.0 – Jetti

+0

@Jetti: funziona perfettamente :) :) –

-1

si può anche leggere colonna indice

lasciate che il vostro oggetto di lavoro foglio di Excel è "excelWorksheet" poi si può accedere come

per l'impostazione di un valore che si può utilizzare

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

per ottenere un valore che si può utilizzare

risultato stringa = excelWorksheet.Cells [rowIndex, columnIndex] .Value;

Ricordate che i campi sono generati dinamicamente quindi potrebbe mostrare errore nel scrivere il codice, ma ignorano che

ad esempio si desidera impostare testo in fila foglio Excel 1 & colonna 2 poi

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

ho usato & funziona perfettamente

+1

-1, non stai rispondendo alla domanda. – nawfal