C Varolan Excele Yeni Veri Ekleme

C ile Var Olan Excel’e Yeni Veri Ekleme

Excel, dünyanın en popüler elektronik tablo uygulamalarından biridir ve büyük miktarlarda veriyi yönetmek ve analiz etmek için yaygın olarak kullanılır. C programlama dili, Excel ile etkileşime geçmek ve verileri otomatikleştirmek için kullanılabilir. Bu makale, C kullanarak var olan bir Excel dosyasına yeni veri eklemeyi açıklayacaktır.

Gereklilikler

  • C derleyicisi
  • Excel yüklü bir bilgisayar
  • Microsoft Office Interop Kütüphanesi

Microsoft Office Interop Kütüphanesini Yükleme

Microsoft Office Interop Kütüphanesi, C programlarının Microsoft Office uygulamalarıyla etkileşime geçmesine olanak tanır. Kütüphaneyi yüklemek için aşağıdaki adımları izleyin:

  1. Visual Studio’yu açın.
  2. “Araçlar” menüsüne gidin ve “NuGet Paket Yöneticisi”ni seçin.
  3. “Çevrimiçi” sekmesine gidin ve “Microsoft.Office.Interop.Excel” paketini arayın.
  4. Paketi seçin ve “Yükle” düğmesine tıklayın.

C Kodunu Yazma

Aşağıdaki C kodu, var olan bir Excel dosyasına yeni veri ekler:

“`c

include

include

include

include

int main()
{
// Excel uygulamasını başlatın
CoInitialize(NULL);
IDispatch excelApp = NULL;
HRESULT hr = CoCreateInstance(CLSID_Excel, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void
*)&excelApp);
if (FAILED(hr))
{
printf(“Excel uygulaması başlatılamadı.\n”);
return 1;
}

// Çalışma kitabını açın
IDispatch *workbook = NULL;
hr = excelApp->lpVtbl->Workbooks->lpVtbl->Open(excelApp, L"C:\\path\\to\\workbook.xlsx", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
if (FAILED(hr))
{
    printf("Çalışma kitabı açılamadı.\n");
    excelApp->lpVtbl->Quit(excelApp);
    CoUninitialize();
    return 1;
}

// Çalışma sayfasını alın
IDispatch *worksheet = NULL;
hr = workbook->lpVtbl->Worksheets->lpVtbl->Item(workbook, 1, &worksheet);
if (FAILED(hr))
{
    printf("Çalışma sayfası alınamadı.\n");
    workbook->lpVtbl->Close(workbook, NULL, NULL);
    excelApp->lpVtbl->Quit(excelApp);
    CoUninitialize();
    return 1;
}

// Yeni veriyi ekleyin
VARIANT var;
VariantInit(&var);
var.vt = VT_BSTR;
var.bstrVal = SysAllocString(L"Yeni Veri");
hr = worksheet->lpVtbl->Cells->lpVtbl->Item(worksheet, 1, 1, &var);
if (FAILED(hr))
{
    printf("Yeni veri eklenemedi.\n");
    VariantClear(&var);
    worksheet->lpVtbl->Release(worksheet);
    workbook->lpVtbl->Close(workbook, NULL, NULL);
    excelApp->lpVtbl->Quit(excelApp);
    CoUninitialize();
    return 1;
}
VariantClear(&var);

// Çalışma kitabını kaydedin
hr = workbook->lpVtbl->Save(workbook, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
if (FAILED(hr))
{
    printf("Çalışma kitabı kaydedilemedi.\n");
    worksheet->lpVtbl->Release(worksheet);
    workbook->lpVtbl->Close(workbook, NULL, NULL);
    excelApp->lpVtbl->Quit(excelApp);
    CoUninitialize();
    return 1;
}

// Çalışma kitabını kapatın
workbook->lpVtbl->Close(workbook, NULL, NULL);

// Excel uygulamasını kapatın
excelApp->lpVtbl->Quit(excelApp);

// COM'u sonlandırın
CoUninitialize();

return 0;

}
“`

Kod Açıklaması

  • CoInitialize() ve CoUninitialize() fonksiyonları, COM’u başlatır ve sonlandırır.
  • CoCreateInstance() fonksiyonu, Excel uygulamasını başlatır.
  • Workbooks->Open() yöntemi, çalışma kitabını açar.
  • Worksheets->Item() yöntemi, çalışma sayfasını alır.
  • Cells->Item() yöntemi, yeni veriyi hücreye ekler.
  • Save() yöntemi, çalışma kitabını kaydeder.
  • Close() yöntemi, çalışma kitabını kapatır.
  • Quit() yöntemi, Excel uygulamasını kapatır.

Faydalı Siteler ve Dosyalar


Yayımlandı

kategorisi