EXPORTAR LISTVIEW PARA DOC WORD
Pessoal tenho uma aplicacao de teste aqui que esta funcionando corretamente ela exporta os textbox para um doc word corretamente....Tentei adicionar os items de um listview mais nao consegui alguem poderia me ajudar...Como eu disse ele exporta normalmente os textbox mais tentei exportar o listview mais so vai a primeira linha....
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word
Public Class Form1
Dim objword As Microsoft.Office.Interop.Word.Application
Dim objdoc As Microsoft.Office.Interop.Word.Document
Private Sub dados(ByVal header As String, ByVal data As String)
With objword.Selection.Find
.ClearFormatting()
.Text = header
.Execute()
.Forward = True
End With
Clipboard.Clear()
Clipboard.SetText(data)
objword.Selection.Paste()
Clipboard.Clear()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
objword = New Microsoft.Office.Interop.Word.Application
[ô]Aqui voce define aonde esta o arquivo de exemplo com os parametros.
objdoc = objword.Documents.Open([Ô]C:\01.docx[Ô])
Call dados([Ô]@nome[Ô], txtnome.Text)
Call dados([Ô]@endereco[Ô], txtend.Text)
Call dados([Ô]@telefone[Ô], txtel.Text)
[ô]Aqui voce escolhe aonde voce ira salva-lo voce pode usar um savefiledialog
objword.ActiveDocument.SaveAs2([Ô]C:\[Ô] & txtnome.Text & [Ô].docx[Ô])
MsgBox([Ô]Arquivo gerado com sucesso!![Ô])
objword = Nothing
End Sub
End Class
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word
Public Class Form1
Dim objword As Microsoft.Office.Interop.Word.Application
Dim objdoc As Microsoft.Office.Interop.Word.Document
Private Sub dados(ByVal header As String, ByVal data As String)
With objword.Selection.Find
.ClearFormatting()
.Text = header
.Execute()
.Forward = True
End With
Clipboard.Clear()
Clipboard.SetText(data)
objword.Selection.Paste()
Clipboard.Clear()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
objword = New Microsoft.Office.Interop.Word.Application
[ô]Aqui voce define aonde esta o arquivo de exemplo com os parametros.
objdoc = objword.Documents.Open([Ô]C:\01.docx[Ô])
Call dados([Ô]@nome[Ô], txtnome.Text)
Call dados([Ô]@endereco[Ô], txtend.Text)
Call dados([Ô]@telefone[Ô], txtel.Text)
[ô]Aqui voce escolhe aonde voce ira salva-lo voce pode usar um savefiledialog
objword.ActiveDocument.SaveAs2([Ô]C:\[Ô] & txtnome.Text & [Ô].docx[Ô])
MsgBox([Ô]Arquivo gerado com sucesso!![Ô])
objword = Nothing
End Sub
End Class
Provavelmente voce precisa de um foreach para cada linha do listview ser considerada e a partir dai incrementar tua variavel
WEBMASTER Vlw pela resposta e isso mesmo e que nao estou sabendo implementar esse loop pra ele fazer isso...
WebMaster seguindo seu sabio conselho consegui fazer funcionar... Mais agora surgiu outro problema ele coloca tudo em uma linha kkkkk
objword = New Microsoft.Office.Interop.Word.Application
objdoc = objword.Documents.Open([Ô]C:\01.docx[Ô])
Call dados([Ô]@nome[Ô], txtnome.Text)
Call dados([Ô]@endereco[Ô], txtend.Text)
Call dados([Ô]@telefone[Ô], txtel.Text)
For Each myItem As ListViewItem In ListView1.Items
Call dados([Ô]@lista[Ô], ([Ô]id: [Ô] & myItem.Text & [Ô]Nome Produto: [Ô] & myItem.SubItems(1).Text & [Ô]Quantidade: [Ô] & myItem.SubItems(2).Text))
Next
objword.ActiveDocument.SaveAs2([Ô]C:\02.docx[Ô])
MsgBox([Ô]Arquivo gerado com sucesso!![Ô])
objword = Nothing
objword = New Microsoft.Office.Interop.Word.Application
objdoc = objword.Documents.Open([Ô]C:\01.docx[Ô])
Call dados([Ô]@nome[Ô], txtnome.Text)
Call dados([Ô]@endereco[Ô], txtend.Text)
Call dados([Ô]@telefone[Ô], txtel.Text)
For Each myItem As ListViewItem In ListView1.Items
Call dados([Ô]@lista[Ô], ([Ô]id: [Ô] & myItem.Text & [Ô]Nome Produto: [Ô] & myItem.SubItems(1).Text & [Ô]Quantidade: [Ô] & myItem.SubItems(2).Text))
Next
objword.ActiveDocument.SaveAs2([Ô]C:\02.docx[Ô])
MsgBox([Ô]Arquivo gerado com sucesso!![Ô])
objword = Nothing
tentou concatenar o vbCrLf onde quer a quebra de linha?
NICKOSOFT FIZ DE OUTRA FORMA Mais poderia postar aonde adiciono no codigo acima esse comando que voce passou...
Tópico encerrado , respostas não são mais permitidas