Visual C++ .NET - Grafico bloqueado en excel

   
Vista:

Grafico bloqueado en excel

Publicado por FANY (1 intervención) el 07/03/2008 10:00:46
Hola a todos, tengo un problema a la hora de generar un fichero excel a partir de una plantilla, en el tengo un grafico en una hoja, y otra hoja mas con los datos del grafico. Cuando abro el archivo una vez generado no me deja hacer nada en el grafico, ni siquiera selecionarlo, ¿que es lo que estoy haciendo mal?
Muchas gracias, os dejo el codigo a continuación:

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
Microsoft.Office.Interop.Excel.Worksheet ws;
String path = System.Windows.Forms.Application.StartupPath + "\Plantillas\ParetosAverias.xlT";
int row = 2, col = 1, i = 0;

if (xlApp == null)
{
MessageBox.Show("EXCEL no ha podido inicializarse. Comprueba que la instalación de Offices y las referencias del proyecto son correctas.");
return;
}
ObjWorkBook = xlApp.Workbooks.Open(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlApp.Visible = false;
ws = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[2];

while (rst.EOF == false)
{
ws.Cells[row, col] = rst.Fields[1].Value;
ws.Cells[row, col + 1] = Convert.ToInt32(rst.Fields[0].Value);
ws.Cells[row, col + 2] = (Convert.ToDouble(rst.Fields[0].Value) / Convert.ToDouble(total)) + valorAnt;
valorAnt = Convert.ToDouble((Convert.ToDouble(rst.Fields[0].Value) / Convert.ToDouble(total))) + valorAnt;
row = row + 1;
rst.MoveNext();
}

ws = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
ChartObject ch = (ChartObject)ws.ChartObjects(1);
ws = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[2];
ch.Chart.SetSourceData(ws.get_Range(ws.Cells[1, 1], ws.Cells[row - 1, 3]), Microsoft.Office.Interop.Excel.XlRowCol.xlColumns );
ch.Locked = false; ch.ProtectChartObject = false; ch = null;

ObjWorkBook.SaveAs(path.Replace("ParetosAverias.xlT", "ParetosAverias.xls"), XlFileFormat.xlWorkbookNormal,
null, null, false, false, XlSaveAsAccessMode.xlShared, false, false, null, null, null);
ObjWorkBook.Close(XlSaveAction.xlDoNotSaveChanges, Type.Missing, Type.Missing);
ObjWorkBook = null;
xlApp.Quit();
//mostrar los datos que acabamos de cubrir
MessageBox.Show("El documento se ha generado correctamente. A continuación se abrirá.");
ObjWorkBook = xlApp.Workbooks.Open(path.Replace("ParetosAverias.xlT", "ParetosAverias.xls"), Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlApp.Visible = true;
xlApp = null; ObjWorkBook = null;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Visual C++ .NET
- Código fuente de Visual C++ .NET
información
Códigos de Visual C++ .NET
- Calculo de Edad en C++
- Calculo de salario, con funciones en C++
- Juego del Risk