Convertir PDF a Excel en C++

Visión general

Este artículo explica cómo convertir PDF a formatos Excel usando C++. Cubre los siguientes temas.

Formato: XLS

Formato: XLSX

Formato: Formato Microsoft Excel XLS

Formato: Formato Microsoft Excel XLSX

Otros temas cubiertos por este artículo

Conversiones de C++ PDF a Excel

Aspose.PDF para C++ soporta la función de convertir archivos PDF a formatos de Excel.

Aspose.PDF para C++ es un componente de manipulación de PDF, hemos introducido una función que renderiza el archivo PDF a un libro de Excel (archivos XLS). Durante esta conversión, las páginas individuales del archivo PDF se convierten en hojas de cálculo de Excel.

Para convertir archivos PDF al formato XLS, Aspose.PDF tiene una clase llamada ExcelSaveOptions. Un objeto de la clase ExcelSaveOptions se pasa como segundo argumento al constructor Document.Save(..).

El siguiente fragmento de código muestra el proceso para convertir un archivo PDF en formato XLS con Aspose.PDF para C++.

Pasos: Convertir PDF a XLS en C++ | Pasos: Convertir PDF a formato Excel XLS en C++

  1. Cree una instancia del objeto Document con el documento PDF de origen.
  2. Guárdelo en formato XLS llamando al método Document->Save().
void ConvertPDFtoExcel()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Cadena para el nombre de la ruta
    String _dataDir("C:\\Samples\\Conversion\\");

    // Cadena para el nombre del archivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    try {
    // Guardar la salida en formato XLS
    document->Save(_dataDir + outfilename, SaveFormat::Excel);
    }
    catch (Exception ex) {
    std::cerr << ex->get_Message();
    }
    std::clog << __func__ << ": Finish" << std::endl;
}

Convertir PDF a XLS con Control de Columna

Al convertir un PDF a formato XLS, se agrega una columna en blanco al archivo de salida como primera columna. La opción InsertBlankColumnAtFirst de la clase in ExcelSaveOptions se utiliza para controlar esta columna. Su valor predeterminado es true.

void ConvertPDFtoExcel_Advanced_InsertBlankColumnAtFirst()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para el nombre de la ruta
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para el nombre del archivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar objeto ExcelSave Option
    auto excelSave = MakeObject<ExcelSaveOptions>();

    // La opción InsertBlankColumnAtFirst de la clase in ExcelSaveOptions se utiliza para controlar esta columna. Su valor predeterminado es true.
    excelSave->set_InsertBlankColumnAtFirst(false);

    // Guardar la salida en formato XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Convertir PDF a una sola hoja de cálculo de Excel

Al exportar un archivo PDF con muchas páginas a XLS, cada página se exporta a una hoja diferente en el archivo de Excel. Esto se debe a que la propiedad MinimizeTheNumberOfWorksheets está configurada como false por defecto. Para asegurar que todas las páginas se exporten a una sola hoja en el archivo Excel de salida, configure la propiedad MinimizeTheNumberOfWorksheets como true.

void ConvertPDFtoExcel_Advanced_MinimizeTheNumberOfWorksheets()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Cadena para el nombre de la ruta
    String _dataDir("C:\\Samples\\Conversion\\");

    // Cadena para el nombre del archivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar objeto de opción de guardado en Excel
    auto excelSave = MakeObject<ExcelSaveOptions>();

    excelSave->set_MinimizeTheNumberOfWorksheets(true);

    // Guardar la salida en formato XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Convertir a formato XLSX

Por defecto, Aspose.PDF utiliza XML Spreadsheet 2003 para almacenar datos. Para convertir archivos PDF al formato XLSX, Aspose.PDF tiene una clase llamada ExcelSaveOptions con ‘Format’. Un objeto de la clase ExcelSaveOptions se pasa como segundo argumento al método Save.

El siguiente fragmento de código muestra el proceso para convertir un archivo PDF en formato XLSX.

Pasos: Convertir PDF a XLSX en C++ | Pasos: Convertir PDF a formato Excel XLSX en C++

  1. Cree una instancia del objeto Document con el documento PDF de origen.
  2. Crea una instancia de ExcelSaveOptions.
  3. Establece el formato como ExcelSaveOptions::ExcelFormat::XLSX.
  4. Guárdalo en formato XLSX llamando al método Document->Save() y pasándole la instancia de ExcelSaveOptions.
void ConvertPDFtoExcel_Advanced_SaveXLSX()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para el nombre de la ruta
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para el nombre del archivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar objeto de opción de guardado de Excel
    auto excelSave = MakeObject<ExcelSaveOptions>();

    excelSave->set_Format(ExcelSaveOptions::ExcelFormat::XLSX);

    // Guardar la salida en formato XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Ver También

Este artículo también cubre estos temas. Los códigos son los mismos que arriba.

Formato: Formato Microsoft Excel XLS

Formato: Formato Microsoft Excel XLSX

Formato: XLS

Formato: XLSX