Converter PDF para Excel

Aspose.PDF para Android via Java API permite renderizar seus arquivos PDF para os formatos de arquivo Excel XLS e XLSX. Já temos outra API, conhecida como Aspose.Cells para Java, que fornece a capacidade de criar e manipular pastas de trabalho do Excel existentes. Ela também fornece a capacidade de transformar pastas de trabalho do Excel para o formato PDF.

Converter PDF para Excel XLS

Para converter arquivos PDF para o formato XLS, o Aspose.PDF possui uma classe chamada ExcelSaveOptions. Um objeto da classe ExcelSaveOptions é passado como segundo argumento para o construtor Document.Save(..).

Converter um arquivo PDF em formato XLSX faz parte da biblioteca do Aspose.PDF para a versão Java 18.6. Para converter arquivos PDF para o formato XLSX, você precisa definir o formato como XLSX usando o método setFormat() da Classe ExcelSaveOptions.

O trecho de código a seguir mostra como converter um arquivo PDF para os formatos xls e .xlsx:

public void convertPDFtoExcelSimple() {
        // Abra o documento PDF de origem
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Instanciar objeto de opção de salvamento do Excel
        ExcelSaveOptions saveOptions = new ExcelSaveOptions();

        File xlsFileName = new File(fileStorage, "PDF-to-Excel.xlsx");
        try {
            // Salvar o arquivo no formato de documento MS
            document.save(xlsFileName.toString(), SaveFormat.Excel);
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Converter PDF para XLS com Controle de Coluna

Ao converter um PDF para o formato XLS, uma coluna em branco é adicionada ao arquivo de saída como primeira coluna. A opção InsertBlankColumnAtFirst da classe ExcelSaveOptions é usada para controlar essa coluna. Seu valor padrão é verdadeiro.

public void convertPDFtoExcelAdvanced_InsertBlankColumnAtFirst() {
        // Abrir o documento PDF de origem
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Instanciar objeto da opção ExcelSave
        ExcelSaveOptions excelSaveOptions = new ExcelSaveOptions();
        excelSaveOptions.setInsertBlankColumnAtFirst(false);

        File xlsFileName = new File(fileStorage, "PDF-to-Excel.xlsx");
        try {
            // Salvar o arquivo no formato de documento MS
            document.save(xlsFileName.toString(), excelSaveOptions);
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Converter PDF para uma Única Planilha do Excel

Ao exportar um arquivo PDF com muitas páginas para XLS, cada página é exportada para uma folha diferente no arquivo Excel. Isso ocorre porque a propriedade MinimizeTheNumberOfWorksheets é definida como false por padrão. Para garantir que todas as páginas sejam exportadas para uma única folha no arquivo Excel de saída, defina a propriedade MinimizeTheNumberOfWorksheets como true.

 public void convertPDFtoExcelAdvanced_MinimizeTheNumberOfWorksheets() {
        // Abra o documento PDF de origem
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Instanciar objeto ExcelSaveOption
        ExcelSaveOptions excelSaveOptions = new ExcelSaveOptions();
        excelSaveOptions.setMinimizeTheNumberOfWorksheets(true);

        // Salvar a saída em XLSX
        File xlsFileName = new File(fileStorage, "PDF-to-Excel.xlsx");
        try {
            // Salvar o arquivo no formato MS Excel
            document.save(xlsFileName.toString(), excelSaveOptions);
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Converter para o formato XLSX

Por padrão, o Aspose.PDF usa o XML Spreadsheet 2003 para armazenar dados. Para converter arquivos PDF para o formato XLSX, o Aspose.PDF tem uma classe chamada ExcelSaveOptions com Format. Um objeto da classe ExcelSaveOptions é passado como segundo argumento para o método Document.Save(..).

 public void convertPDFtoExcelAdvanced_SaveCSV() {
        // Carregar documento PDF
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Instanciar objeto ExcelSaveOption
        ExcelSaveOptions excelSaveOptions = new ExcelSaveOptions();
        excelSaveOptions.setFormat(ExcelSaveOptions.ExcelFormat.CSV);

        // Salvar a saída em CSV
        File xlsFileName = new File(fileStorage, "PDF-to-Excel.csv");
        try {
            // Salvar o arquivo no formato CSV
            document.save(xlsFileName.toString(), excelSaveOptions);
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }