Deshabilitar la encapsulación automática en la exportación

Recientemente heredé un proyecto en el trabajo que fue escrito por uno de nuestros pasantes menos calificados. Es bastante sencillo en teoría; solo necesita exportar algunos datos de un servidor a un archivo CSV para un proveedor.

El problema es que nuestro proveedor necesita tener todos los campos, no solo los que tienen comas, encapsulados entre comillas. Aspose Cells parece tener alguna forma de encapsulación automática en campos con comas, pero no en todos los campos.

El programador original creó su propio método que aplica comillas a todos los campos antes de exportar, pero el archivo termina con comillas triples alrededor de todos los campos. Para contrarrestar esto, escribieron otra función que vuelve a abrir el archivo y reemplaza todas las comillas triples con una simple.

Sé que hay opciones de delimitación para archivos de texto, pero no puedo encontrar nada sobre cómo cambiar la encapsulación en Aspose.

Entonces mi pregunta es, ¿hay otras formas de manejar esto que sean mejores que hacer dos pases como lo hace actualmente?

Actualización: Aspose respondió a mi publicación en su foro y dicen que agregarán una propiedad a la clase TxtSaveOptions para admitir esta funcionalidad. Actualizaré nuevamente si / cuando eso suceda con detalles.

preguntado el 12 de junio de 12 a las 18:06

¿En qué punto de la secuencia se agregan las comillas? Si puede ver dónde Apose agrega comillas, simplemente marque esos campos como los que no deben encapsularse, luego encapsule el resto de los campos... -

Aspose agrega las comillas durante el proceso de guardado real. Según lo que veo en sus foros, encapsula automáticamente cualquier campo de cadena, por lo que cualquier comilla que agregue dará como resultado una situación de comillas triples. -

1 Respuestas

En Aspose.Cells para .NET v7.2.2 han agregado una nueva propiedad a TxtSaveOptions , que son AlwaysQuoted.

Aquí hay una muestra de cómo usar esta propiedad durante el guardado:

var options = new TxtSaveOptions(SaveFormat.CSV) {AlwaysQuoted = true};
workBook.Save(@"C:\Export Location\"), options);

Establecer la propiedad en verdadero encapsulará todos los campos, independientemente del contenido. La configuración predeterminada es imitar el estándar CSV como lo haría Excel.

Respondido 09 Jul 12, 21:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.