Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por mr22robot
      Ola caros amigos. 
      Estou com uma dúvida aqui que embora nao tenho achado ainda uma resposta, acredito que haja.
      Estou estudando a tão sonhada linguagem de programação asp.net core mvc. Linguagem essa que demorei 5 anos pra iniciar os estudos rsrs.
      Mas estou agarrado em uma situação. 
      Estou usando como base de dados nos meus estudos um banco Oracle. Que já tem algumas informações nele. Utilizei o SCAFFOLD para criar as classes e o contexto baseado no banco e tabelas existentes. 
      Porem agora na fase das consultas, estou perdido em como utilizar o IN que eu utilizo no oracle; no LINQ.
      Ex: 
      SELECT CODPROD,DESCRICAO FROM PRODUTO WHERE CODPROD IN(1,2,3,4,5,6) Como eu utilizo esse filtro com uma restrição de códigos de produtos? no caso o where codprod in(1,2,3,4,5,6) ?.
      Desde já obrigado pela ajuda.
    • Por rsnow
      Bom dia a todos;
      Estou com problema na leitura de um arquivo .CSV, 
      a coluna que contém número de CNPJ está vindo convertido em notação científica e não estou conseguindo converter para numeração correta
      Ex: 3,04918E+12
      eu quero mostrar o valor que se encontra convertido que no caso é 3049181000139
      porém faço isso manual no próprio excel e isso se torna muito trabalhoso toda vez.
       
      alguma luz?

    • Por Rafael Massula
      Boa noite pessoal, 
      Tenho o seguinte código em .Net que faz a comparação de uma senha que foi criptografada e salva no banco com a senha comum que o usuário conhece. O algoritmo que desenvolvi foi esse da image.png porem preciso converter essa verificação para JavaScript pela seguinte necessidade, será uma aplicação em electron e ela poderá funcionar offline então não terei como mandar a verificação para o servidor. Existe alguma possibilidade? Desde já agradeço. 

    • Por Alvaro_php
      Pessoal boa noite
      Tenho um sistema em Visual Basic 6 que utiliza um documento do Word que é enviado para as empresas, onde tenho algumas flags que são utilizadas para colocar no nome da empresa e endereço e que são enviadas via email

      Estou conseguindo converter esse documento do WORD em PDF sem problemas
      Private Sub ConverterWordParaPDF()

          On Error GoTo TrataErro
          Dim ObjWord2 As Word.Application
          Dim ObjWordDoc2 As Word.Document
          
          Set ObjWord2 = CreateObject('Word.Application')
          ObjWord2.Visible = False
          ObjWord2.DisplayAlerts = wdAlertsNone

          Set ObjWordDoc2 = ObjWord2.Documents.Open(App.Path + '\Documento.doc', True, True, False, Replace(Replace(Replace(Replace(Rs(1), '/', ''), '-', ''), '.', ''), '_', ''))

          ObjWordDoc2.ExportAsFixedFormat OutputFileName:= _
          App.Path + '\Documento.pdf', ExportFormat:=wdExportFormatPDF, _
          OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
          wdExportAllDocument, from:=1, To:=1, Item:=wdExportDocumentContent, _
          IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
          wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
          True, UseISO19005_1:=False
              
          ObjWord2.Visible = False
          ObjWord2.Quit (False)
          Set ObjWord2 = Nothing
      Exit Sub
      TrataErro:
        msgbox 'Erro ao converter o documento'
      End Sub

      Porém a senha que coloquei no word, não está ficando no arquivo pdf após a conversão, e também não achei nenhuma opção para incluir uma senha nesse novo arquivo

      Não estou usando o Crystal e o documento do word é um documento qualquer que o cliente usa, por isso que não da para utilizar o crystal

      Alguém sabe como que eu poderia fazer essa conversão e colocar a senha nesse novo arquivo ou teria alguma outra forma de converter esse documento para pdf que desse para colocar a senha

      Desde já agradeço a todos
    • Por Kefatif
      Prezados, boa tarde!
       
      Em uma tela faço o envio de arquivos PDF para uma pasta reservada para isso.
       
      Estou tendo dificuldade para criar um botão de download na tela de consultas, quando abro a página de consulta ele está me mostrando a seguinte mensagem: "Notice: Undefined variable: row in C:\xampp\htdocs\plataforma\indicadores\consultar.php on line 126"
       
      Podem me ajudar?
       
      <?php include_once 'autenticacao.php'; include_once'../conexao.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>Envio de Ata</title> <link href="../css/estilo.css" rel="stylesheet"> <!-- Bootstrap Core CSS --> <link href="../css/bootstrap.css" rel="stylesheet"> <!-- Custom CSS --> <link href="../css/modern-business.css" rel="stylesheet"> <!-- Custom Fonts --> <link href="../font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <script src="../js/jquery.min.js"></script> </head> <body> <?php include_once 'nav-menu1.php'; ?> <!-- Page Content --> <div class="container" style="width: 90%"> <?php include_once 'cabecalho.php'; ?> <div class="row"> <?php include_once 'barra-lateral.php'; ?> <!-- Content Column --> <div class="col-md-9" style="width: 80%"> <h4><b>CONSULTAR UNIDADE</b></h4> <form class="form-inline" action="consultar.php" autocomplete="off" method="get"> <div id="form-callcenter"> <label style="width: 30%"> <input type="text" name="nome" class="form-control" placeholder="Digite o nome da unidade" style="width: 100%"> </label> <input type="submit" readonly value="Pesquisar" class="btn btn-primary"> </div> </form> <?php if (isset($_GET["nome"]) ) { $nome = $_GET["nome"]; include_once '../funcoes.php'; $sql = "select A.dt_envio, A.unidade, A.responsavel, A.observacao, A.anexo from controle_ata A where A.unidade like '%".$nome."%' order by A.dt_envio desc"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { ?> <table class="table table-hover table-bordered" id="tabela-dispensacao2"> <tr> <th>Unidade</th> <th>Data do envio</th> <th>Responsável</th> <th>Observação</th> <th>Ata</th> <th>Download</th> </tr> <?php if($row["anexo"] == ''){ $cor = "red"; }else{ $cor = "blue"; } while ($row = mysqli_fetch_array($result)){ foreach($row as $key => $values){ $row[$key]= utf8_encode($values); } ?> <tr> <td><?php echo $row["unidade"]?></td> <td><?php echo dataTela($row["dt_envio"]); ?></td> <td><?php echo $row["responsavel"]; ?></td> <td><?php echo $row["observacao"] ?></td> <td><?php echo $row["anexo"] ?></td> <td><a class="<?php if($row["ANEXO"] == ''){echo "link-nao-ativo";}?>" href='anexos/<?php echo $row["ANEXO"] ?>' target="_blank"> <i style="color:<?php echo $cor ?>" class="glyphicon glyphicon-download-alt"></i> </a> </td> </tr> <?php }//ENCERRANDO O WHILE ?> </table> <?php }else{ echo "Nenhuma unidade encontrada!<br>"; } } ?> <?php mysqli_close($con); ?> </div> </div> <!-- /.row --> </div> <!-- /.container --> <!-- jQuery --> <script src="../js/jquery.js"></script> <!-- Bootstrap Core JavaScript --> <script src="../js/bootstrap.min.js"></script> </body> </html>  
       
      Agradeço a ajuda desde já!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.