Jump to content
ZecaLoteiro

[Resolvido] Interop: Excel to PDF

Recommended Posts

Bom dia senhores.

Estou com um problema. Estou abrindo uma planilha, editando, salvando-a, e exportando um PDF.

Na última etapa, no comando

ExportAsFixedFormat

 está dando um erro:

System.ArgumentException: 'O valor não recai no intervalo esperado.'

 

Segue o código:

  Private Sub GeraExcel()
    Dim template As xL.Workbook = New xL.Application().Workbooks.Open(ModeloPath)
    Dim sh As xL.Worksheet = template.Sheets("PDF")
    sh.Cells(1, 1).value = "PDF"
    If IO.File.Exists(Destino) Then
      Try
        IO.File.Delete(Destino)
      Catch ex As Exception
      End Try
    End If
    template.SaveAs(Destino)
    sh.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, "C:\Temp\pdf.pdf")
    template.Close(False)
    Process.Start("EXCEL.EXE", Destino)
    RaiseEvent ThreadCompleted()
  End Sub

Este erro é muito genérico, não sei nem por onde começar a tentar analisar...

Alguém já passou por isso? 

 

Obrigado.

Share this post


Link to post
Share on other sites

Boa tarde,

Falha minha.

 

Depois de pesquisar várias outras ferramentas percebi que estav cometendo um erro básico.

Ao invés de exportar o workbook eu estava tentando exportar a sheet, por isso o erro.

Tudo foi solucionado quando corrigi a linha para:

template.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, "C:\Temp\pdf.pdf")

 

 

Solucionado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By cunhar7
      Boa noite a todos, Gostaria de saber se alguém pode me ajudar com o DomPdf. Estou utilizando como base do projeto o codeigniter e bootstrap.
      Preciso Gerar um PDF com uma galeria de produtos, o problema é que não consigo forçar uma quebra de linhas. Os itens sempre aparecem um na frete do outro.
       
      //controller public function ImprimirTrabalho(){ #pesquisando modelo do trabalho $pesquisaModelo = $this->Trabalho->trabalho_layout($this->uri->segment(2)); #passando Modelo do trabalho para a variavel modelo $modelo = $pesquisaModelo['0']['layout']; ob_start(); $this->load->view('header_impressao'); $this->load->view($modelo); $pdf = ob_get_clean(); $this->pdf->loadHtml($pdf); // (Optional) Setup the paper size and orientation $this->pdf->setPaper('A4', ''); // Render the HTML as PDF $this->pdf->render(); // Output the generated PDF to Browser $this->pdf->stream("",array("Attachment" => false)); }
    • By helkton
      oi galera estou criando um sistema para gerenciar certificado de uma escola de cursos ja fiz as condições, pra bloquear conforme as horas aulas, conforme pagamentos, agora estou preso no certificado fPDF
      consegui desenhar a primeira pagina mais o certificado precisará imprimir algumas informações no verso tbm como desenhar a segunda pagina do certificado??
      ja AddPage(), ele adiciona a nova pagina mais como desenhar nesta pagina?? atualmente consegui fazer assim, desenho os 2 pdf separado, tipo clico em um botãoFrente e pego as info da frente do certificado e outro para imprimir apenas a parte do verso rsss
      como juntar tudo e imprimir a frente e o verso
      //***** PDF *****// $pdf = new AlphaPDF(); // Orientação Landing Portraid Page /// $pdf->AddPage('L'); $pdf->SetLineWidth(1.5); // desenha a imagem do certificado $pdf->Image('certificadoBM.jpg',0,0,295); // opacidade total $pdf->SetAlpha(1); // Mostrar texto no topo $pdf->SetFont('TwClassified', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(109,46); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $texto1, '', 'L', 0); // Tamanho width e height e posição //Nome_do_Aluno $pdf->SetFont('Arial', '', 30); // Tipo de fonte e tamanho $pdf->SetXY(20,90); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $nomeAluno, '', 'C', 0); // Tamanho width e height e posição // Mostrar o corpo $pdf->SetFont('Arial', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(20,110); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $texto2, '', 'C', 0); // Tamanho width e height e posição // Mostrar a data no final $pdf->SetFont('Arial', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(20,172); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(165, 10, $texto3, '', 'L', 0); // Tamanho width e height e posição $pdfdoc = $pdf->Output('', 'S'); // $certificado="arquivos/$nomeAluno.pdf"; //atribui a variável $certificado com o caminho e o nome do arquivo que será salvo (vai usar o CPF digitado pelo usuário como nome de arquivo) // $pdf->Output($certificado,'F'); //Salva o certificado no servidor (verifique se a pasta "arquivos" tem a permissão necessária) // Utilizando esse script provavelmente o certificado ficara salvo em www.seusite.com.br/gerar_certificado/arquivos/999.999.999-99.pdf (o 999 representa o CPF digitado pelo usuário) $pdf->Output(); // Mostrar o certificado na tela do navegador  
    • By frlopes
      Pessoal, bom dia.
       
      Tentei fazer o exemplo abaixo do site:
       
      http://www.macoratti.net/15/10/mvc_roles1.htm
       
      E está retornando o seguinte erro quando tento fazer um novo registro:
       
      System.InvalidOperationException: 'The ViewData item that has the key 'Name' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'.'
       
      Alguém poderia me ajudar? 
      Obrigada!
    • By Overtron8000
      Ola galera, estive fazendo um app simples de impressao de formulario usando o ireport mas não estou conseguindo passar os parametros do formulario para o documento jmxl ja tentei de toda forma mas simplesmente esta caindo no catch e saindo sem criar o arquivo.
      private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { HashMap parametros = new HashMap(); parametros.put("fornecedor", fornecedortF.getText()); parametros.put("ncontrato", ncontratoF.getText()); String caminhoRelJasper = "geradorcontrato/relatorio.jrxml"; InputStream fonte = this.getClass().getClassLoader().getResourceAsStream(caminhoRelJasper); try { JasperReport report = JasperCompileManager.compileReport(fonte); JasperPrint print = JasperFillManager.fillReport(report,parametros, new JREmptyDataSource()); JasperExportManager.exportReportToPdfFile(print,"teste.pdf"); System.out.println("imprimiu"); }catch(JRException e){ System.out.println("caiu no catch");} System.out.println("saiu"); } Dai era para esses parametros do map irem pro jxml nao estao indo, nem cria um novo pdf na pasta.
      link do projeto: https://github.com/regis404/Gerador-de-Contratos
    • By asacap1000
      Salva galera, a tempo eu exporto os dados de consultas realizadas em  nossa intranet, para excel. Porém hoje estamos precisando dividir algumas informações. por exemplo consulto saldo de estoque do cliente, e cada saldo corresponde a um documento, hoje eu trago em apenas uma aba na planilha mas o cliente solicitou para gerar cada documento uma aba ex:

       
      Eu pesquisei mas não encontrei nada que falasse sobre isso.
      hoje utilizo algo simples para exportar.

       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.