Procedura: memorizzare e recuperare valori di data in intervalli di Excel
Aggiornamento: novembre 2007
Si applica a |
---|
Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati. Tipo di progetto
Versione Microsoft Office
Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazione. |
È possibile memorizzare e recuperare valori in un controllo NamedRange o in un oggetto dell'intervallo nativo di Excel.
Se si memorizza un valore di data che cade il 1/1/1900 o dopo tale data in un intervallo tramite Visual Studio Tools per Office, tale valore verrà memorizzato in formato automazione OLE (OA). È necessario utilizzare il metodo FromOADate per recuperare il valore delle date in formato automazione OLE (OA). Se la data è precedente al 1/1/1900, viene memorizzata come stringa.
Nota: |
---|
Le date di Excel differiscono dalle date in formato automazione OLE per i primi due mesi del 1900. Esistono inoltre delle differenze se viene selezionata l'opzione Sistema data 1904. Negli esempi di codice riportati di seguito non vengono annoverate queste differenze. |
Utilizzo di un controllo NamedRange
- Questo esempio è valido per personalizzazioni a livello di documento. Inserire il codice seguente in una classe Sheet, non nella classe ThisWorkbook.
Per memorizzare un valore di data in un intervallo denominato
Creare un controllo NamedRange nella cella A1.
Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _ Me.Controls.AddNamedRange(Me.Range("A1"), "NamedRange1")
Microsoft.Office.Tools.Excel.NamedRange NamedRange1 = this.Controls.AddNamedRange(this.get_Range("A1", missing), "NamedRange1");
Impostare la data odierna come valore di NamedRange1.
Dim dt As DateTime = DateTime.Now NamedRange1.Value2 = dt
DateTime dt = DateTime.Now; NamedRange1.Value2 = dt;
Per recuperare un valore di data da un intervallo denominato
Recuperare il valore di data da NamedRange1.
Dim value As Object = NamedRange1.Value2 If Not value Is Nothing Then If TypeOf value Is Double Then dt = DateTime.FromOADate(CType(value, Double)) Else DateTime.TryParse(CType(value, String), dt) End If End If MessageBox.Show(dt.ToString())
object value = NamedRange1.Value2; if (value != null) { if (value is double) { dt = DateTime.FromOADate((double)value); } else { DateTime.TryParse((string)value, out dt); } } MessageBox.Show(dt.ToString());
Utilizzo di intervalli nativi di Excel
Per memorizzare un valore di data in un oggetto intervallo nativo di Excel
Creare un oggetto Range che rappresenta la cella A1.
Dim rng As Excel.Range = Me.Application.Range("A1")
Excel.Range rng = this.Application.get_Range("A1", missing);
Impostare la data odierna come valore di rng.
Dim dt As DateTime = DateTime.Now rng.Value2 = dt
DateTime dt = DateTime.Now; rng.Value2 = dt;
Per recuperare un valore di data da un oggetto intervallo nativo di Excel
Recuperare il valore di data da rng.
Dim value As Object = rng.Value2 If Not value Is Nothing Then If TypeOf value Is Double Then dt = DateTime.FromOADate(CType(value, Double)) Else DateTime.TryParse(CType(value, String), dt) End If End If System.Windows.Forms.MessageBox.Show(dt.ToString())
object value = rng.Value2; if (value != null) { if (value is double) { dt = DateTime.FromOADate((double)value); } else { DateTime.TryParse((string)value, out dt); } } System.Windows.Forms.MessageBox.Show(dt.ToString());
Vedere anche
Attività
Procedura: inviare valori alle celle del foglio di lavoro
Procedura: fare riferimento agli intervalli dei fogli di lavoro nel codice
Procedura: aggiungere controlli NamedRange a fogli di lavoro
Concetti
Cenni preliminari sul modello a oggetti di Excel
Informazioni sui parametri facoltativi nelle soluzioni Office