繁体   English   中英

excel utf-8 csv导出和分隔符

[英]excel utf-8 csv export and the separator

所以我做到了(我使用Drupal 6):

  while(@ob_end_clean());
  drupal_set_header("Content-type: text/csv;");
  drupal_set_header("Cache-Control: no-store, no-cache");
  drupal_set_header("Content-Disposition: attachment; filename=translations.csv");
  print chr(255) . chr(254) . mb_convert_encoding($output, 'UTF-16LE', 'UTF-8');
  exit;

导出utf-8字符的CSV。 当我导入excel时,utf-8字符将正确显示。

问题是,excel无法解析分隔符,即逗号将全部显示在一列中,而不是在打开文件时用作分隔符。

有没有一种方法可以使它在我打开时用作分隔符?

csv中的一行如下:

$output .= '"'.str_replace('"', '""', $id).'","'.str_replace('"', '""', $source).'","'.str_replace('"', '""', $translation) . '"';

我尝试使用制表符\\ t代替逗号作为分隔符,但是会发生同样的事情。 选项卡将不会在打开文件时用作分隔符

如果您使用的是Excel 2007,则如果先打开Excel,则可以转到“ Data选项卡,然后选择“ From Text

在资源管理器浏览器中选择.csv文件,然后将出现文本向导。 这为您提供了更多的步骤和选项,以控制有关拆分列等的所需内容。

旧版本的Excel也支持它,但是我不确定它是否位于同一位置。

尝试该向导,看看它如何解决您的问题。

要将逗号用作默认的CSV分隔符,需要更改相应的Windows区域设置选项:

转到控制面板->区域和语言选项(或在某些计算机上为日期,时间和区域选项->区域和语言选项)->单击自定义按钮。 在打开的对话框中,您会看到“ 列表分隔符 ”选项,在其中可以将逗号更改为其他字符->单击“应用”,然后单击“确定”,然后再次应用。

请注意以下事项:

  1. 默认情况下,此设置用于CSV导入和导出。
  2. 您应该使用“ File > Open ,“非Data > Import External Data > Import Data...打开CSV文件,或者直接在资源管理器中双击任何CSV文件,它将在Excel中使用默认分隔符打开。

阅读更多:

要使用x分隔值从Excel支持Unicode,请使用制表符分隔的UTF-16 Little-Endian(在另存为... > Unicode文本(* .txt)时Excel生成的内容)。

如果不这样做,就会遇到类似您遇到的问题。

请参阅: Excel和Unicode

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM