GERAR EXCEL EM C# CONSOLE
Boa noite, estou fazendo um processo que gera um relatorio automaticamente em C# Console Application, gostaria de saber se alguém tem alguma dica pra eu poder fazer isso, pois achei muita info somente em windows form, alguém teria algum link, exemplo ou dica?
Achei esse código na net, mas não consegui salvar automaticamente, ao salvar ele abre a janela para escolher nome do arquivo e local, segue o código:
public static int CreateExcelWorksheet1()
{
int resp = 0;
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
Console.WriteLine([Ô]EXCEL could not be started. Check that your office installation and project references are correct.[Ô]);
}
xlApp.Visible = true;
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
if (ws == null)
{
Console.WriteLine([Ô]Worksheet could not be created. Check that your office installation and project references are correct.[Ô]);
}
// Select the Excel cells, in the range c1 to c7 in the worksheet.
Range aRange = ws.get_Range([Ô]C1[Ô], [Ô]C7[Ô]);
if (aRange == null)
{
Console.WriteLine([Ô]Could not get a range. Check to be sure you have the correct versions of the office DLLs.[Ô]);
}
// Fill the cells in the C1 to C7 range of the worksheet with the number 6.
Object[] args = new Object[1];
args[0] = 6;
aRange.GetType().InvokeMember([Ô]Value[Ô], BindingFlags.SetProperty, null, aRange, args);
// Change the cells in the C1 to C7 range of the worksheet to the number 8.
aRange.Value2 = 8;
Range bRange = ws.get_Range([Ô]A1[Ô], [Ô]G1[Ô]);
if (aRange == null)
{
Console.WriteLine([Ô]Could not get a range. Check to be sure you have the correct versions of the office DLLs.[Ô]);
}
// Fill the cells in the C1 to C7 range of the worksheet with the number 6.
Object[] argsb = new Object[1];
argsb[0] = 6;
bRange.GetType().InvokeMember([Ô]Value[Ô], BindingFlags.SetProperty, null, bRange, argsb);
// Change the cells in the C1 to C7 range of the worksheet to the number 8.
bRange.Value2 = 8;
//xlApp.Save([Ô]D:\\Compartilhados\\GeraRelSIGA\ este.xls[Ô]);
xlApp.SaveWorkspace([Ô]D:\\Compartilhados\\GeraRelSIGA\ este.xls[Ô]);
return resp;
}
Obrigado
Achei esse código na net, mas não consegui salvar automaticamente, ao salvar ele abre a janela para escolher nome do arquivo e local, segue o código:
public static int CreateExcelWorksheet1()
{
int resp = 0;
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
Console.WriteLine([Ô]EXCEL could not be started. Check that your office installation and project references are correct.[Ô]);
}
xlApp.Visible = true;
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
if (ws == null)
{
Console.WriteLine([Ô]Worksheet could not be created. Check that your office installation and project references are correct.[Ô]);
}
// Select the Excel cells, in the range c1 to c7 in the worksheet.
Range aRange = ws.get_Range([Ô]C1[Ô], [Ô]C7[Ô]);
if (aRange == null)
{
Console.WriteLine([Ô]Could not get a range. Check to be sure you have the correct versions of the office DLLs.[Ô]);
}
// Fill the cells in the C1 to C7 range of the worksheet with the number 6.
Object[] args = new Object[1];
args[0] = 6;
aRange.GetType().InvokeMember([Ô]Value[Ô], BindingFlags.SetProperty, null, aRange, args);
// Change the cells in the C1 to C7 range of the worksheet to the number 8.
aRange.Value2 = 8;
Range bRange = ws.get_Range([Ô]A1[Ô], [Ô]G1[Ô]);
if (aRange == null)
{
Console.WriteLine([Ô]Could not get a range. Check to be sure you have the correct versions of the office DLLs.[Ô]);
}
// Fill the cells in the C1 to C7 range of the worksheet with the number 6.
Object[] argsb = new Object[1];
argsb[0] = 6;
bRange.GetType().InvokeMember([Ô]Value[Ô], BindingFlags.SetProperty, null, bRange, argsb);
// Change the cells in the C1 to C7 range of the worksheet to the number 8.
bRange.Value2 = 8;
//xlApp.Save([Ô]D:\\Compartilhados\\GeraRelSIGA\ este.xls[Ô]);
xlApp.SaveWorkspace([Ô]D:\\Compartilhados\\GeraRelSIGA\ este.xls[Ô]);
return resp;
}
Obrigado
Ninguém tem alguma luz? =/
Bom, se o que vc precisa gerar não vai conter formatação/fórmulas, apenas dados, vc pode simplesmente gerar um arquivo texto separado por vÃrgulas(CSV). O Excel importa ele facinho...
Caro KERPLUNK,
Por incrÃvel que pareça tive essa idéia antes de ler sua resposta, e sim, é o que eu preciso!
Valew pela dica mesmo assim, isso resolve meu problema e espero que ajude outros futuramente, obrigado!
Por incrÃvel que pareça tive essa idéia antes de ler sua resposta, e sim, é o que eu preciso!
Valew pela dica mesmo assim, isso resolve meu problema e espero que ajude outros futuramente, obrigado!
Tópico encerrado , respostas não são mais permitidas