2010-02-19 7 views
5

Attualmente sto facendo questo:Come faccio ad avere il valore di una cella con indice di riga e colonna di indice

string cellValue = sheet.get_Range("A12", _missing).Value2.ToString(); 

questo funziona, ma ho davvero bisogno di selezionare una cella per riga e l'indice di colonna.

ottengo un'eccezione nulla quando provo

string cellValue = ((Range)sheet.Cells[row, column]).Value2.ToString(); 

tutte le idee?

+0

possibile duplicato di [Come ottenere un intervallo di Excel utilizzando i numeri di riga e colonna in VSTO/C#?] (Http://stackoverflow.com/questions/2333202/how-do-i-get-an-excel- range-using-row-and-column-numbers-in-vsto-c) – nawfal

risposta

7

Dove si verifica lo ArgumentNullException? Prova separando il codice come questo e passo attraverso di essa:

object rangeObject = sheet.Cells[row, column]; 
Range range = (Range)rangeObject; 
object rangeValue = range.Value2; 
string cellValue = rangeValue.ToString(); 

Questo vi mostrerà dove l'oggetto nullo è.

+0

l'eccezione NullReferenceException avviene a string cellValue = rangeValue.ToString(); perché range.Value2 è null. so che il mio foglio è buono ma penso che sheet.Cells [riga, colonna] è il vero colpevole. – CurlyFro

+0

Penso quindi che un valore 'range.Value2' nullo indichi che la cella non ha un valore. Se si guarda la cella in Excel, è vuoto? –

+2

Inoltre, l'interoperabilità di Excel utilizza l'indicizzazione basata su 1. Il problema potrebbe essere che si utilizzano indici a base zero che fanno riferimento a una cella vuota. Se questo è il caso, tutto ciò che devi fare è usare 'row + 1' e' column + 1' per ottenere la cella corretta. –

0

Ho avuto lo stesso problema. Il nullref sarebbe successo quando la cella che stavo leggendo era vuota.

string foo = (((Range) ActiveWorksheet.Cells[row, column]).Value2 != null 
      ? ((Range) ActiveWorksheet.Cells[row, column]).Value2.ToString() 
      : "Coalesce some false string here..."); 

Si noti che è necessario verificare la presenza di nulla prima si tenta di trasformare o il cast del valore.

Problemi correlati