He estado buscando en Google y buscando en el sitio la respuesta, pero no encontré una solución: en todas partes las personas discuten sobre cómo agregar nuevas formatear el número en el documento y aplicarlo.Cómo obtener el valor de celda con el formato aplicado (valor de celda formateado) con OpenXML SDK
Lo que necesito es obtener el valor de la celda como una cadena con formato aplicado, es decir, la misma cadena que Excel.
Ya he pensado que no hay una forma fácil o una función incorporada que devuelva el valor formateado de una celda.
Me parece que para obtener el valor necesito hacer dos cosas: 1. Obtenga la cadena de formato. 2. Formatee el valor de la celda usando esta cadena.
Pero tengo problemas con ambos pasos.
uno puede conseguir fácilmente ejemplo CellFormat que contendría IdFormatoNumerico:
CellFormat cellFormat = (CellFormat) document.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ElementAt(cell.StyleIndex);
Pero cómo obtener la cadena de formato con este IdFormatoNumerico, si el ID corresponde a uno de los formatos predefinidos estándar? (es decir, está por debajo de 160) No están en el documento de la hoja de cálculo y no puedo creer que estén codificados en la aplicación.
Además, una vez que se obtiene de alguna manera la cadena de formato, ¿cómo aplicarla al valor de celda? Hasta ahora entiendo, el código debe verificar el tipo del valor de la celda y si es Number - conviértalo en string usando la cadena de formato.
Encontré this page que menciona el uso de Microsoft.Office.Excel.Interop, pero preferiría quedarme solo con OpenXML SDK.
En general, estoy muy sorprendido de que sea tan difícil encontrar una respuesta definitiva a esta pregunta en la Web, ya que pensé que esto sería algo que muchos desarrolladores necesitan en su trabajo diario.
encontrar algún código agradable aquí: http://joymonscode.blogspot.se/2013/10/reading-excel-cell-with-number.html –