Ir para conteúdo

POWERED BY:

Arquivado

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

sr.silva

[Resolvido] DataGrid para Excel

Recommended Posts

Olá!

 

Através de uma consulta no banco, utilizo o código abaixo na criação de um *.xls. Porém estou tendo problemas no momento de "salvar" o arquivo.

 

Na execução do método Save(), o mesmo abre uma caixa de "Salvar como" e salva o arquivo na execução do próprio método.

Salvando assim 2 arquivos, um com o nome dado no código abaixo e outro com o nome fornecido na "caixa" de "Salvar como".

 

A dúvida é:

Como salvar apenas um arquivo?

 

[]s

 

 

Excel.ApplicationClass excel = new Excel.ApplicationClass();

excel.Application.Workbooks.Add(true);

DataTable table = Negocio.Consultar().Tables[0];

int cIndex = 0;

foreach( DataColumn col in table.Columns )

{

cIndex++;

excel.Cells[1, cIndex] = col.ColumnName;

}

int rIndex = 0;

foreach (DataRow row in table.Rows)

{

rIndex++;

cIndex = 0;

foreach (DataColumn col in table.Columns)

{

cIndex++;

excel.Cells[rIndex + 1, cIndex] = row[col.ColumnName].ToString();

}

}

string s;

s = "Inventario_" + cmbInventario.Text + "_" + DateTime.Today.Date.ToShortDateString().Replace("/", "_") + ".xls";

excel.Save(s);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, eu fiz um projeto aqui e adicionei somente isso:

ApplicationClass excel = new ApplicationClass();
excel.Application.Workbooks.Add(true);
excel.Save(@"C:\Guilherme\Teste.xls");
E ele salva sem problemas. Você adicionou referência a DLL Microsoft.Office.Interop.Excel, certo?

Qual a versão do seu Excel e Windows?

Compartilhar este post


Link para o post
Compartilhar em outros sites

As referências que tenho:

 

- Excel

- Microsoft.Office.Core

- Microsoft.Office.Interop.Excel(11.0)

 

- Windows XP Professional

- Office 2003 V.11

 

Porém se eu adicionar a referencia [ Microsoft.Office.Interop.Excel(11.0) ], ao compilar gera o seguinte erro:

 

An assembly with the same identity 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' has already been imported. 
Try removing one of the duplicate references. c:\Arquivos de programas\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\Microsoft.Office.Interop.Excel.dll

//edit

 

Se utilizarmos o script de criação, ele cria normalmente.

Porém executando o código abaixo, ele abre a caixa de "Salvar Como".

 

foreach (DataColumn col in table.Columns)
			{
				cIndex++;
				excel.Cells[1, cIndex] = col.ColumnName;
			}

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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