Bagikan melalui


Menyimpan dan mengambil nilai tanggal secara terprogram dalam rentang Excel

Anda dapat menyimpan dan mengambil nilai dalam NamedRange kontrol atau objek rentang Excel asli.

Berlaku untuk: Informasi dalam topik ini berlaku untuk proyek tingkat dokumen dan proyek Add-in VSTO untuk Excel. Untuk informasi selengkapnya, lihat Fitur yang tersedia berdasarkan aplikasi Office likasi dan jenis proyek.

Jika Anda menyimpan nilai tanggal yang berada di atau setelah 1/1/1900 dalam rentang menggunakan alat pengembangan Office di Visual Studio, nilai tersebut disimpan dalam format OLE Automation (OA). Anda harus menggunakan FromOADate metode untuk mengambil nilai tanggal OLE Automation (OA). Jika tanggal lebih awal dari 1/1/1900, tanggal tersebut disimpan sebagai string.

Catatan

Tanggal Excel berbeda dari tanggal Otomatisasi OLE untuk dua bulan pertama 1900. Ada juga perbedaan jika opsi sistem tanggal 1904 dicentang. Contoh kode di bawah ini tidak mengatasi perbedaan ini.

Menggunakan kontrol NamedRange

  • Contoh ini untuk kustomisasi tingkat dokumen. Kode berikut harus ditempatkan di kelas lembar, bukan di ThisWorkbook kelas .

Untuk menyimpan nilai tanggal dalam rentang bernama

  1. Buat NamedRange kontrol di sel A1.

    Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
        this.Controls.AddNamedRange(this.get_Range("A1"), "NamedRange1");
    
  2. Atur tanggal hari ini sebagai nilai untuk NamedRange1.

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

Untuk mengambil nilai tanggal dari rentang bernama

  1. Ambil nilai tanggal dari 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());
    

Menggunakan rentang Excel asli

Untuk menyimpan nilai tanggal dalam objek rentang Excel asli

  1. Buat yang Range mewakili sel A1.

    Excel.Range rng = this.Application.get_Range("A1");
    
  2. Atur tanggal hari ini sebagai nilai untuk rng.

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

Untuk mengambil nilai tanggal dari objek rentang Excel asli

  1. Ambil nilai tanggal dari 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());