Sdílet prostřednictvím


Ukládání a načítání hodnot kalendářních dat v oblastech Excelu prostřednictvím kódu programu

Hodnoty můžete ukládat a načítat v ovládacím NamedRange prvku nebo nativním objektu oblasti aplikace Excel.

Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO pro Excel. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.

Pokud uložíte hodnotu data, která spadá do 1. 1. 1900 nebo po 1. 1900 v rozsahu pomocí vývojových nástrojů Office v sadě Visual Studio, uloží se ve formátu OLE Automation (OA). K načtení hodnoty kalendářních dat OLE Automation (OA) je nutné použít FromOADate metodu. Pokud je datum dřívější než 1. 1. 1900, uloží se jako řetězec.

Poznámka:

Kalendářní data aplikace Excel se liší od kalendářních dat automatizace OLE pro první dva měsíce roku 1900. Existují také rozdíly, pokud je zaškrtnutá možnost kalendářního systému 1904. Následující příklady kódu tyto rozdíly nezabývá.

Použití ovládacího prvku NamedRange

  • Tento příklad je určený pro přizpůsobení na úrovni dokumentu. Následující kód musí být umístěn do třídy listu, nikoli do ThisWorkbook třídy.

Uložení hodnoty data v pojmenované oblasti

  1. Vytvořte NamedRange ovládací prvek v buňce A1.

    Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
        this.Controls.AddNamedRange(this.get_Range("A1"), "NamedRange1");
    
  2. Nastavte dnešní datum jako hodnotu pro NamedRange1.

    DateTime dt = DateTime.Now;
    NamedRange1.Value2 = dt;
    

Načtení hodnoty data z pojmenované oblasti

  1. Načte hodnotu data z NamedRange1.

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

Použití nativních oblastí aplikace Excel

Uložení hodnoty data v nativním objektu rozsahu aplikace Excel

  1. Vytvořte buňku Range A1.

    Excel.Range rng = this.Application.get_Range("A1");
    
  2. Nastavte dnešní datum jako hodnotu pro rng.

    DateTime dt = DateTime.Now;
    rng.Value2 = dt;
    

Načtení hodnoty data z nativního objektu rozsahu aplikace Excel

  1. Načte hodnotu data z rng.

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