Conversione di Foglio di Lavoro in Immagine e Foglio di Lavoro a Pagina con C++

Utilizzare Aspose.Cells per convertire un foglio elettronico in un file immagine

Questo articolo mostra come creare un’applicazione console in Visual Studio, convertire un foglio elettronico in un’immagine e convertire un foglio elettronico in un’immagine per ogni foglio con poche e semplici righe di codice utilizzando l’API Aspose.Cells.

Devi includere lo spazio dei nomi Aspose.Cells.Rendering nel tuo programma/progetto. Ha diverse classi di valore, come SheetRender, ImageOrPrintOptions, WorkbookRender e così via. La classe Aspose.Cells.Rendering.SheetRender rappresenta un foglio di lavoro per renderizzare immagini del foglio di lavoro e ha un metodo sovraccarico ToImage che può convertire un foglio di lavoro in file immagine direttamente con tutte le attributi o opzioni impostate. Può restituire un oggetto System.Drawing.Bitmap, e puoi salvare un file immagine sul disco/stream. Sono supportati diversi formati di immagine, ad esempio BMP, PNG, GIF, JPG, JPEG, TIFF, EMF e altri.

Questo articolo spiega come:

  • Convertire un foglio di lavoro in un’immagine
  • Convertire ogni pagina in un foglio di lavoro in un’immagine

Questo compito mostra come utilizzare Aspose.Cells per convertire un foglio di lavoro da un modello di cartella di lavoro in un file di immagine.

Progetto di installazione

  1. Prima, scarica Aspose.Cells for C++.
  2. Installa sul tuo computer di sviluppo. Tutti i componenti Aspose, una volta installati, funzionano in modalità valutativa. La modalità valutativa non ha limiti di tempo e inserisce solo filigrane nei documenti prodotti. Ora avvia Visual Studio e crea una nuova applicazione console. Questo esempio utilizza un’applicazione console C++. Aggiungi un riferimento a Aspose.Cells nel progetto creato.

Converti Foglio di Lavoro in File Immagine

Ho creato un nuovo workbook in Microsoft Excel e ho aggiunto alcuni dati al primo foglio di lavoro: Testbook.xlsx (1 foglio di lavoro). Successivamente, converti il foglio di lavoro del file modello chiamato Sheet1 in un file immagine chiamato SheetImage.jpg.

Di seguito è riportato il codice utilizzato dal componente per completare il compito. Converte Sheet1 in Testbook.xlsx in un file immagine per spiegare quanto sia facile questa conversione.

#include <iostream>
#include <fstream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Drawing;

std::string convert_u16_to_string(const U16String& u16str);

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

    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    Workbook book(srcDir + u"sampleConvertWorksheettoImageFile.xlsx");
    Worksheet sheet = book.GetWorksheets().Get(0);

    ImageOrPrintOptions imgOptions;
    imgOptions.SetOnePagePerSheet(true);
    imgOptions.SetImageType(ImageType::Jpeg);

    SheetRender sr(sheet, imgOptions);
    sr.ToImage(0, outDir + u"outputConvertWorksheettoImageFile.jpg");

    std::cout << "Worksheet converted to image successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

Utilizzare Aspose.Cells per convertire il foglio di lavoro in un file immagine per pagina

Questo esempio mostra come utilizzare Aspose.Cells per convertire un foglio di lavoro da un modello di cartella di lavoro che ha diverse pagine in un file immagine per pagina.

Convertire Foglio di Lavoro in Immagine per Pagina

Ho creato un nuovo workbook in Microsoft Excel e ho aggiunto alcuni dati al primo foglio di lavoro: Testbook2.xlsx (1 foglio di lavoro).

Ora, converti il foglio di lavoro del file modello in file immagine (un file per pagina). Poiché ho già creato l’applicazione console per eseguire il compito di copia, salterò quei passaggi di creazione dell’applicazione console e passerò direttamente ai passaggi di conversione del foglio di lavoro.

Di seguito è riportato il codice utilizzato dalla componente per completare il compito. Converte Sheet1 in Testbook2.xlsx in file immagine per pagina.

#include <iostream>
#include <string>
#include <sstream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;
using namespace Aspose::Cells::Drawing;
using namespace Aspose::Cells::Rendering;

std::u16string intToU16String(int value) {
    std::u16string result;
    if (value == 0) {
        result.push_back(u'0');
        return result;
    }
    while (value > 0) {
        result.insert(result.begin(), static_cast<char16_t>(u'0' + (value % 10)));
        value /= 10;
    }
    return result;
}

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

    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    Workbook book(srcDir + u"sampleConvertWorksheetToImageByPage.xlsx");

    Worksheet sheet = book.GetWorksheets().Get(0);

    ImageOrPrintOptions options;
    options.SetHorizontalResolution(200);
    options.SetVerticalResolution(200);
    options.SetImageType(ImageType::Tiff);

    SheetRender sr(sheet, options);
    for (int j = 0; j < sr.GetPageCount(); j++)
    {
        std::u16string pageNum = intToU16String(j + 1);
        U16String fileName = outDir + U16String(u"outputConvertWorksheetToImageByPage_") + U16String(pageNum.c_str()) + U16String(u".tif");
        sr.ToImage(j, fileName);
    }

    std::cout << "Worksheet converted to images by page successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}