separado punto por para ejemplo cómo crear crea convertir configurar como coma automaticamente archivos archivo abrir excel csv newline

ejemplo - convertir excel a csv separado por punto y coma



Generar archivo CSV para Excel, cómo tener una nueva línea dentro de un valor (17)

Necesito generar un archivo para Excel, algunos de los valores en este archivo contienen múltiples líneas.

también hay texto que no está en inglés, por lo que el archivo debe ser Unicode.

El archivo que estoy generando ahora se ve así: (en UTF8, con texto no inglés mezclado y con muchas líneas)

Header1,Header2,Header3 Value1,Value2,"Value3 Line1 Value3 Line2"

Tenga en cuenta que el valor multilínea está entre comillas dobles, con una nueva línea normal diaria.

De acuerdo con lo que encontré en la web, se supone que funciona, pero no funciona, al menos no gana archivos Excel 2007 y UTF8, Excel trata la tercera línea como la segunda fila de datos, no como la segunda línea de la primera fila de datos .

Esto tiene que ejecutarse en las máquinas de mis clientes y no tengo control sobre su versión de Excel, por lo que necesito una solución que funcione con Excel 2000 y posterior.

Gracias

EDIT: "resolví" mi problema al tener dos opciones de CSV, una para Excel (Unicode, tabulación separada, no nuevas líneas en los campos) y otra para el resto del mundo (UTF8, CSV estándar).

No es lo que estaba buscando, pero al menos funciona (hasta ahora)


Aquí hay un enfoque interesante usando JavaScript ...

String.prototype.csv = String.prototype.split.partial(/,/s*/); var results = ("Mugan, Jin, Fuu").csv(); console.log(results[0]=="Mugan" && results[1]=="Jin" && results[2]=="Fuu", "The text values were split properly");


Debería tener caracteres de espacio al comienzo de los campos SÓLO donde los caracteres de espacio son parte de los datos. Excel no se despojará de los espacios principales. Obtendrá espacios no deseados en sus títulos y campos de datos. Peor aún, el " que debería estar" protegiendo "ese salto de línea en la tercera columna será ignorado porque no está al principio del campo.

Si tiene caracteres no ASCII (codificados en UTF-8) en el archivo, debe tener una BOM UTF-8 (3 bytes, hex EF BB BF ) al comienzo del archivo. De lo contrario, Excel interpretará los datos de acuerdo con la codificación predeterminada de su configuración regional (por ejemplo, cp1252) en lugar de utf-8, y los caracteres que no sean ASCII se descartarán.

Los siguientes comentarios se aplican a Excel 2003, 2007 y 2013; no probado en Excel 2000

Si abre el archivo haciendo doble clic en su nombre en el Explorador de Windows, todo funciona bien.

Si lo abre desde Excel, los resultados varían:

  1. Solo tiene caracteres ASCII en el archivo (y no en la lista de materiales): funciona.
  2. Tiene caracteres no ASCII (codificados en UTF-8) en el archivo, con una lista de materiales UTF-8 al inicio: reconoce que sus datos están codificados en UTF-8, pero ignora la extensión csv y lo coloca en el texto. Importe no-a-Wizard , desafortunadamente con el resultado de que obtiene el problema de salto de línea.

Las opciones incluyen:

  1. Capacitar a los usuarios para que no abran los archivos desde Excel :-(
  2. Considere escribir un archivo XLS directamente ... hay paquetes / bibliotecas disponibles para hacerlo en Python / Perl / PHP / .NET / etc.

Después de muchos ajustes, aquí hay una configuración que funciona generando archivos en Linux, leyendo en Windows + Excel

  • Los renglones nuevos dentro de un campo necesitan ser / n (y obviamente citados entre comillas)
  • Fin del registro: / r / n
  • Asegúrese de no iniciar un campo con iguales, de lo contrario se trata como una fórmula y se trunca

En Perl, utilicé Text :: CSV para hacer esto de la siguiente manera:

use Text::CSV; open my $FO, ">:encoding(utf8)", $filename or die "Cannot create $filename: $!"; my $csv = Text::CSV->new({ binary => 1, eol => "/r/n" }); #for each row...: $csv -> print ($FO, /@row);


En una PC, el carácter ASCII # 10 es lo que desea colocar una nueva línea dentro de un valor.

Sin embargo, una vez que lo tenga en Excel, debe asegurarse de que el ajuste de palabras esté activado para las celdas de varias líneas o que la línea nueva aparezca como un recuadro cuadrado.


Encontré esto y me ha funcionado

$delimiter = '',''; $enc1 = ''"''; $enc2 = ''""'';

Entonces, donde necesitas tener cosas cerradas

$myfile = (''/path/to/myfile.csv''); //erase any previous contents $fp = fopen($myfile, ''w+''); fwrite($fp, $enc1 . ''Column Heading 1'' . $enc1 . $delimiter ); //append to new file $fp2 = fopen($myfile, ''a''); fwrite($fp2, $enc1 . ''Column Heading 2'' . $enc1 . $delimiter );

.....

fwrite($fp2, $enc1 . ''Last Column Heading'' . $enc1 . $delimiter. PHP_EOL );

Luego, cuando necesite escribir algo, como HTML que incluya el mensaje "puede hacer esto".

fwrite($fp2, $enc2 . $myhtmlstring . $enc2 . $delimiter);

Nuevas líneas terminan con . PHP_EOL . PHP_EOL

El final del script imprime un enlace para que el usuario pueda descargar el archivo.

echo ''Click <a href="myfile.csv">here</a> to download file'';


Esto no funcionará si intenta importar el archivo a EXCEL.

Asocia la extensión de archivo csv con EXCEL.EXE para que puedas invocar EXCEL haciendo doble clic en el archivo csv.

Aquí coloco un texto seguido de NewLine Char seguido de un poco más de texto Y adjuntando toda la cadena con comillas dobles.

No use un CR ya que EXCEL colocará parte de la cadena en la celda siguiente.

""text" + NL + "text""

Cuando invocas EXCEL, verás esto. Es posible que tenga que ajustar automáticamente la altura para verlo todo. Donde la línea se rompe dependerá del ancho de la celda.

2

FECHA

Aquí está el código en Basic

CHR$(34,"2", 10,"DATE", 34)


Imprimir una nueva línea HTML <br/> en el contenido y abrir en excel funcionará bien en cualquier excel


La forma en que lo hacemos (utilizamos VB.Net) es encerrar el texto con nuevas líneas en Chr (34), que es el carácter que representa las comillas dobles y reemplazar todos los caracteres CR-LF por LF.


Los archivos UTF que contienen una lista de materiales provocarán que Excel trate nuevas líneas literalmente, incluso en ese campo está rodeado por comillas. (Probado Excel 2008 Mac)

La solución es hacer que cualquier línea nueva sea un retorno de carro (CHR 13) en lugar de un avance de línea.


Newline dentro de un valor parece funcionar si usa punto y coma como separador, en lugar de coma o pestaña, y usa comillas.

Esto funciona para mí tanto en Excel 2010 como en Excel 2000. Sin embargo, sorprendentemente, solo funciona cuando abre el archivo como una nueva hoja de cálculo, no cuando lo importa a una hoja de cálculo existente utilizando la función de importación de datos.


Normalmente, una nueva línea es "/ r / n". En mi CSV, reemplacé "/ r" con el valor vacío. Aquí está el código en Javascript:

cellValue = cellValue.replace(//r/g, "")

Cuando abro el archivo CSV en MS Excel, funcionó bien. Si un valor tiene varias líneas, permanecerá dentro de 1 sola celda en la hoja de Excel.


Podría usar el atajo de teclado ALT + Intro.

  1. Seleccione la celda que desea editar
  2. ingrese al modo de edición haciendo doble clic o presionando F2 3. Presione Alt + Intro. Esto creará una nueva línea en la celda

Pruebe esto: Funciona completamente para mí: xxxx.csv las siguientes líneas en un archivo xxxx.csv

hola_x,="este es mi text1"&CHAR(10)&"I sigo escribiendo",hola_a hola_y,="este es mi text2"&CHAR(10)&"I sigo escribiendo",hola_b hola_z,="este es mi text3"&CHAR(10)&"I sigo escribiendo",hola_c

Abierto con excel

en algunos casos se abrirá directamente; de ​​lo contrario, deberá usar la conversión de columna a datos. expanda el ancho de la columna y presione el botón de texto envolvente. o formatee celdas y active texto envolvente.

y gracias por las otras sugerencias, pero no funcionaron para mí. Estoy en un entorno de Windows puro, y no quería jugar con unicode u otra cosa graciosa.

De esta forma puedes poner una fórmula de csv para sobresalir. Puede ser muchos usos para este método de trabajo. (tenga en cuenta el = antes de las comillas)

pd: en sus sugerencias, por favor ponga algunas muestras de los datos, no solo el código.


Recientemente tuve un problema similar, lo resolví importando un archivo HTML , el ejemplo de referencia sería así:

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <style> <!-- br {mso-data-placement:same-cell;} --> </style> </head> <body> <table> <tr> <td>first line<br/>second line</td> <td style="white-space:normal">first line<br/>second line</td> </tr> </table> </body> </html>

Lo sé, no es un CSV, y podría funcionar de manera diferente para varias versiones de Excel, pero creo que vale la pena intentarlo.

Espero que esto ayude ;-)


Vale la pena señalar que cuando un archivo .CSV tiene campos envueltos entre comillas dobles que contienen saltos de línea, Excel no importará el archivo .CSV correctamente si el archivo .CSV está escrito en formato UTF-8. Excel trata el salto de línea como si fuera CR / LF y comienza una nueva línea. La hoja de cálculo está distorsionada. Eso parece ser cierto incluso si se usan puntos y comas como delimitadores de campo (en lugar de comas).

El problema puede resolverse utilizando el Bloc de notas de Windows para editar el archivo .CSV, usando Archivo> Guardar como ... para guardar el archivo y, antes de guardarlo, cambiando la codificación del archivo de UTF-8 a ANSI. Una vez que el archivo se guarda en formato ANSI, entonces descubro que Microsoft Excel 2013 ejecutándose en Windows 7 Professional importará el archivo correctamente.


poner "/ r" al final de cada fila en realidad tuvo el efecto de saltos de línea en Excel, pero en el .csv desapareció y dejó un feo lío donde cada fila se aplastó contra la siguiente sin espacio y sin saltos de línea


puede hacer el siguiente "/" Value3 Line1 Value3 Line2 / "". Funciona para mí generar un archivo csv en Java