0

我有一个程序可以使文件成为 excel 文件,我拥有它,所以它摆脱了愚蠢的格式 mc excel,但不会摆脱 ########

这种格式发生在 mc excel 中,如果单元格中包含符号 - 似乎。但并非所有人都这样。

清理代码是:

function cleanData(&$str)
  {
   // escape tab characters
    $str = preg_replace("/\t/", "\\t", $str);

    // escape new lines
    $str = preg_replace("/\r?\n/", "\\n", $str);

    // convert 't' and 'f' to boolean values
    if($str == 't') $str = 'TRUE';
    if($str == 'f') $str = 'FALSE';

    // force certain number/date formats to be imported as strings
    if(preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) {
      $str = "'$str";
    }

    // escape fields that include double quotes
    if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';

  }

需要帮助请叫我!

谢谢你。

4

1 回答 1

1

当单元格的内容对于默认列大小而言太大时,MS Excel 会显示“########”:它与文本中的符号无关。单元格中的值仍然正确,但是在使用制表符分隔值文件时无法设置列宽,因此除非切换到真正的 Excel 文件,否则无法控制。

如果您必须使用制表符分隔值文件;与其编写自己的制表符分隔值转换,不如使用 PHP 的内置fputcsv()函数来代替?

于 2012-09-05T06:27:48.123 回答