Insert Background Image to Excel with C++

Setting Sheet Background in Microsoft Excel

To set a sheet’s background image in Microsoft Excel (for example, Microsoft Excel 2019):

  1. From the Page Layout menu, find the Page Setup option, and then click the Background option.

  2. Select a picture to set the sheet’s background.

    Setting a sheet background

todo:image_alt_text

Setting Sheet Background with Aspose.Cells

The code below sets a background image using an image from a stream.

#include <iostream>
#include <fstream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

Vector<uint8_t> GetDataFromFile(const U16String& file)
{
    std::string f = file.ToUtf8();
    // Open a file 
    std::ifstream fileStream(f, std::ios::binary);

    if (!fileStream.is_open()) {
        std::cerr << "Failed to open the file." << std::endl;
        return 1;
    }

    // Get file size
    fileStream.seekg(0, std::ios::end);
    std::streampos fileSize = fileStream.tellg();
    fileStream.seekg(0, std::ios::beg);

    // Read file contents into uint8_t array
    uint8_t* buffer = new uint8_t[fileSize];
    fileStream.read(reinterpret_cast<char*>(buffer), fileSize);
    fileStream.close();

    Vector<uint8_t> data(buffer, fileSize);
    delete[] buffer;

    return data;
}

using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Create a new Workbook
    Workbook workbook;

    // Get the first worksheet
    Worksheet sheet = workbook.GetWorksheets().Get(0);

    Vector<uint8_t> buffer = GetDataFromFile(U16String(u"background.jpg"));

    // Set the background image for the worksheet
    sheet.SetBackgroundImage(buffer);

    // Save the Excel file
    workbook.Save(u"outputBackImageSheet.xlsx");

    // Save the HTML file
    workbook.Save(u"outputBackImageSheet.html", SaveFormat::Html);

    std::cout << "Files saved successfully." << std::endl;

    Aspose::Cells::Cleanup();
    return 0;
}
  • Working with Background in ODS Files