CONVERTER LISTVIEW PARA EXCEL

VIVIANE 25/09/2012 08:15:54
#410408
Bom dia pessoal
Estou com um pequeno problema, fiz um relatório(tipo uma agenda) onde digito as informações nas textbox e depois envio para uma listview. Preciso converter as informações da listview para o excel. Porém preciso que o cabeçalho da listview também converta para o excel. No meu código ele converte só as informações que eu digito.

Alguém pode me ajudar por favor????
JONATHANSTECKER 25/09/2012 08:24:02
#410411
Resposta escolhida
Poste seu código atual que ajustamos ele para receber também as informações do cabeçalho.
VIVIANE 25/09/2012 08:36:52
#410413
Esse é o meu código:

public partial class Form1 : Form
{
ArrayList dados = new ArrayList();
int contador = 0;
int inti;
int inti2;


public Form1()
{
InitializeComponent();

}

private void Adicionar_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
dados.Add(new Dados(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text));

foreach (Dados d in dados)
{
listView1.Items.Add(d.getCódigo());
listView1.Items[contador].SubItems.Add(d.getProduto());
listView1.Items[contador].SubItems.Add(d.getMarca());
listView1.Items[contador].SubItems.Add(d.getUN());
listView1.Items[contador].SubItems.Add(d.getTranferir());
listView1.Items[contador].SubItems.Add(d.getTransferida());
listView1.Items[contador].SubItems.Add(d.getSaldo());
contador++;
}
contador = 0;
limpar();
}

public void limpar()
{
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
textBox1.Focus();
}

private void Remover_Click(object sender, EventArgs e)
{
listView1.SelectedItems[0].Remove();

}

private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
listView1.Columns.Add(i.ToString());
ListViewItem lv = new ListViewItem(i.ToString());
for (int ai = 0; ai < 10; ai++)
{
lv.SubItems.Add(ai.ToString());
}

listView1.Items.Add(lv);
}

}

private void Exportar_Click(object sender, EventArgs e)
{

_Application app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
Workbook wb = app.Workbooks.Add(1);
Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
int i = 1;
int j = 1;


foreach (ListViewItem lvi in listView1.Items)
{
i = 1;
foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
{
ws.Cells[j, i] = lvs.Text;
i++;
}
j++;

}
wb.SaveAs(@[Ô]D:\VIVIANE    ransferencia.xls[Ô], Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wb.Close(false, Type.Missing, Type.Missing);
app.Quit();


class Dados
{
XlSaveAction salvar = new XlSaveAction();

private string Código;
private string Produto;
private string Marca;
private string UN;
private string Transferir;
private string Transferida;
private string Saldo;

public Dados(string Código, string Produto, string Marca, string UN, string Transferir, string Transferida, string Saldo)
{
this.Código = Código;
this.Produto = Produto;
this.Marca = Marca;
this.UN = UN;
this.Transferir = Transferir;
this.Transferida = Transferida;
this.Saldo = Saldo;
}

public string getCódigo()
{
return Código;
}

public string getProduto()
{
return Produto;
}

public string getMarca()
{
return Marca;
}

public string getUN()
{
return UN;
}

public string getTranferir()
{
return Transferir;
}

public string getTransferida()
{
return Transferida;
}

public string getSaldo()
{
return Saldo;
}

public void setCódigo(string Código)
{
this.Código = Código;
}

public void setProduto(string Produto)
{
this.Produto = Produto;
}

public void setMarca(string Marca)
{
this.Marca = Marca;
}

public void setUN(string UN)
{
this.UN = UN;
}

public void setTranferir(string Transferir)
{
this.Transferir =Transferir;
}

public void setTransferida(string Transferida)
{
this.Transferida = Transferida;
}

public void setSaldo(string Saldo)
{
this.Saldo = Saldo;
}
}
}

JONATHANSTECKER 25/09/2012 09:54:59
#410423
Veja se dessa forma te ajuda...
private void Exportar_Click(object sender, EventArgs e)
{

_Application app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
Workbook wb = app.Workbooks.Add(1);
Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];
int i = 1;
int j = 1;

[txt-color=#e80000] // Adiciona o cabeçalho do Listview na planilha do Excel.
for (int ContadorColunas = 0; ContadorColunas <= this.listView1.Columns.Count - 1; ContadorColunas++)
{
ws.Cells[1, ContadorColunas + 1] = this.listView1.Columns[ContadorColunas].Text;
}[/txt-color]

foreach (ListViewItem lvi in listView1.Items)
{
i = 1;
foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
{
ws.Cells[j, i] = lvs.Text;
i++;
}
j++;

}
wb.SaveAs(@[Ô]D:\VIVIANE    ransferencia.xls[Ô], Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wb.Close(false, Type.Missing, Type.Missing);
app.Quit();
}
VIVIANE 25/09/2012 10:25:23
#410430
Obrigado, mas infelizmente não apareceu ainda o cabeçalho.
JONATHANSTECKER 25/09/2012 11:01:21
#410438
Ops, desculpe, altere o valor da variável j para 2.
int j = 2;
VIVIANE 25/09/2012 11:08:24
#410441
Muito Obrigado

Deu certo sim
Valeuuuu
Tópico encerrado , respostas não são mais permitidas