EDN Admin
Well-known member
Hola.
Estoy trabajando en una aplicación en lenguaje C# que genere un archivo Excel. Para esto, estoy utilizando Microsoft.Office.Interop.Excel, y no he tenido problemas con generar el archivo y guardar información. Mi problema viene cuando quiero guardar una formula de Excel en una celda, ya que la formula no se ejecuta. El código que estoy utilizando es el siguiente: static void Main(string[] args) {
Excel._Application excel = new Excel.Application();
try {
Excel._Workbook libro = excel.Workbooks.Open("Prueba.xlsx", 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);
Excel._Worksheet hoja = libro.Worksheets.get_Item("Q1");
hoja.Cells[4, 5] = 546;
hoja.Cells[4, 6] = 312;
hoja.Cells[4, 7] = 12;
hoja.Cells[4, 8] = 45;
hoja.Cells[4, 9] = 12;
hoja.Cells[4, 10] = 87;
hoja.Cells[4, 11] = "=SUMA(F4,H4*BUSCARV(FORECAST,FORECASTTABLE,2),I4*BUSCARV(FORECAST,FORECASTTABLE,3),J4)";
libro.Save();
libro.Close();
} catch(Exception exc) {
Console.WriteLine("Error al abrir archivo.");
Console.WriteLine(exc.Message);
} finally {
excel.Quit();
GC.Collect();
}
Console.WriteLine("Ejecucion completa.");
Console.ReadKey();
}
Como se puede ver, en la celda [4, 11] estoy guardando una formula que se ejecuta sin problema cuando trabajo desde Excel, pero al hacerlo desde la aplicación no ocurre lo mismo, ya que al abrir el archivo generado, lo que aparece en la celda en vez del resultado de la operación es el mensaje "#¿NOMBRE?". La formula se guarda como texto y hasta que no ejecuto manualmente la formula no veo el resultado.
Entiendo que debe ser por la forma en que estoy guardando la formula, ya que lo guardo como si fuera un String, pero no sé de que forma guardarlo para que Excel lo reconozca como formula.
Si alguien puede ayudarme con este problema, de antemano, muchas gracias.
View the full article
Estoy trabajando en una aplicación en lenguaje C# que genere un archivo Excel. Para esto, estoy utilizando Microsoft.Office.Interop.Excel, y no he tenido problemas con generar el archivo y guardar información. Mi problema viene cuando quiero guardar una formula de Excel en una celda, ya que la formula no se ejecuta. El código que estoy utilizando es el siguiente: static void Main(string[] args) {
Excel._Application excel = new Excel.Application();
try {
Excel._Workbook libro = excel.Workbooks.Open("Prueba.xlsx", 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);
Excel._Worksheet hoja = libro.Worksheets.get_Item("Q1");
hoja.Cells[4, 5] = 546;
hoja.Cells[4, 6] = 312;
hoja.Cells[4, 7] = 12;
hoja.Cells[4, 8] = 45;
hoja.Cells[4, 9] = 12;
hoja.Cells[4, 10] = 87;
hoja.Cells[4, 11] = "=SUMA(F4,H4*BUSCARV(FORECAST,FORECASTTABLE,2),I4*BUSCARV(FORECAST,FORECASTTABLE,3),J4)";
libro.Save();
libro.Close();
} catch(Exception exc) {
Console.WriteLine("Error al abrir archivo.");
Console.WriteLine(exc.Message);
} finally {
excel.Quit();
GC.Collect();
}
Console.WriteLine("Ejecucion completa.");
Console.ReadKey();
}
Como se puede ver, en la celda [4, 11] estoy guardando una formula que se ejecuta sin problema cuando trabajo desde Excel, pero al hacerlo desde la aplicación no ocurre lo mismo, ya que al abrir el archivo generado, lo que aparece en la celda en vez del resultado de la operación es el mensaje "#¿NOMBRE?". La formula se guarda como texto y hasta que no ejecuto manualmente la formula no veo el resultado.
Entiendo que debe ser por la forma en que estoy guardando la formula, ya que lo guardo como si fuera un String, pero no sé de que forma guardarlo para que Excel lo reconozca como formula.
Si alguien puede ayudarme con este problema, de antemano, muchas gracias.
View the full article