EXPORT LISTVIEW PARA EXCEL MUDANDO DATA
Citação::
Formate a célula que contém data.
Já estava tentando fazer isso mais estou tentando achar uma forma de fazer isso nesse for que adicionar as colunas e as linhas...
tentei desta forma para ele definir a coluna inteira para o formato correto na hora de exportar sem sucesso... logo abaixo do texto em vermelho e a forma que carrega os dados da listview para um arquivo excel... gostaria de transformar somente a coluna 2 da planilha.
For i = 0 To ListView1.Items.Count - 1
For j = 0 To ListView1.Items(i).SubItems.Count - 1
[txt-color=#e80000] Dim rg As Excel.Range = DirectCast(sheet.Cells(1, 1), Excel.Range)
rg.EntireColumn.NumberFormat = [Ô]DD/MM/YYYY[Ô][/txt-color]
sheet.Cells(i + 2, j + 1) = ListView1.Items(i).SubItems(j).Text
Next
Next
Citação::
Você pode adicionar uma aspas simples ([ô]) antes do valor. Porém isso vai fazer com que o conteúdo da célula seja entendido como texto, mas a formatação ficará correta. Outra coisa é você passar a data no formato americano (MM/DD/YYYY), pois é essa a formatação padrão.
Ja tentei de tudo.....kkk ta osso...Estou cacando alguma solucao...
Citação::
Você pode adicionar uma aspas simples ([ô]) antes do valor. Porém isso vai fazer com que o conteúdo da célula seja entendido como texto, mas a formatação ficará correta. Outra coisa é você passar a data no formato americano (MM/DD/YYYY), pois é essa a formatação padrão.
Essa parte é a que adiciona as linhas... sabe me dizer como faco pra formatar a coluna 2 inteira...?
For i = 0 To ListView1.Items.Count - 1
For j = 0 To ListView1.Items(i).SubItems.Count - 1
sheet.Cells(i + 2, j + 1) = ListView1.Items(i).SubItems(j).Text
Next
Next
Onde está:
sheet.Cells(i + 2, j + 1) = ListView1.Items(i).SubItems(j).Text
Substitua por:
Dim queData = Convert.ToDateTime( ListView1.Items(i).SubItems(j).Text )
sheet.Cells(i + 2, j + 1) = queData
Não é que vá resolver, mas ao menos pode acarretar uma mensagem de erro indicando algo mais.
Se preferir, pode fazer variações também, como abaixo:
Dim tmp As String = ListView1.Items(i).SubItems(j).Text
Dim queData As Date = DateSerial(CInt(tmp.Substring(5,4)), CInt(tmp.Substring(3,2)), CInt(tmp.Substring(0,2)))
sheet.Cells(i + 2, j + 1) = queData.ToShortDateString
Citação::
Só por curiosidade, faça o seguinte:
Onde está:sheet.Cells(i + 2, j + 1) = ListView1.Items(i).SubItems(j).Text
Substitua por:Dim queData = Convert.ToDateTime( ListView1.Items(i).SubItems(j).Text )
sheet.Cells(i + 2, j + 1) = queData
Não é que vá resolver, mas ao menos pode acarretar uma mensagem de erro indicando algo mais.
Se preferir, pode fazer variações também, como abaixo:
Dim tmp As String = ListView1.Items(i).SubItems(j).Text
Dim queData As Date = DateSerial(CInt(tmp.Substring(5,4)), CInt(tmp.Substring(3,2)), CInt(tmp.Substring(0,2)))
sheet.Cells(i + 2, j + 1) = queData.ToShortDateString
Ambos passaram o mesmo erro, Não e possivel a conversão pois existe um caractere com indice = 0
Em outras palavras, isso não quer dizer que o subitem do listview não possui um valor do tipo data?
Bem, agora é observar em qual Ãndice de subitem se espera que haja uma data válida.
Citação::
Isso é bom.
Em outras palavras, isso não quer dizer que o subitem do listview não possui um valor do tipo data?
Bem, agora é observar em qual Ãndice de subitem se espera que haja uma data válida.
é o que estou tentando fazer....