【问题标题】:How to increase the cell character length in PHPExcel?如何增加 PHPExcel 中的单元格字符长度?
【发布时间】:2019-12-09 17:50:03
【问题描述】:

使用PHPExcel在文件中创建HTML数据并插入,

$FinalCSVName = "TEMP_EXCEL";
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->fromArray( $this->GetFinalDataFieldsXLS( $conn ) , NULL, 'A1');

  foreach( $result as $row ) {
      unset( $row["process_log_id"] );
      unset( $row["SellerID"] );
      $objPHPExcel->getActiveSheet()->fromArray($row, NULL, 'A'.$i);
       $i++;
   }

$objPHPExcel->getActiveSheet()->getColumnDimension("CM")->setAutoSize(true);
$objWriter = PHPExcel_IOFactory::createWriter( $objPHPExcel, 'Excel2007' );
$objWriter->save( Constant::MAIN_FOLDER_PATH.Constant::FINAL_EXCEL_PATH.$FinalCSVName.'.xlsx' );

使用此代码生成 .xlsx 文件,在 CM 列索引中插入 html 内容,例如:-

<div id="accordion"> <div class="card"> <div class="card-header" id="headingOne" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne"><h5 class="mb-0"><button class="btn" ><strong>Summary</strong></button></h5></div><div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion"><div class="card-body"><div class="row"><div class="col-sm-2"><b>Part Name :...

如果 HTML 内容超过 32768(即单元格的默认字符长度),则不会写入完整的 HTML。 在我的情况下,HTML 字符长度在 65000 以上,所以它会写 32768 字符。这会导致 UI 不正确,因为 HTML 格式不正确。那么如何增加单元格的字符长度呢?

【问题讨论】:

  • 怀疑您能否更改 Excel 本身的“硬”限制。这几乎听起来像是经典的XY problem。通过将大量 HTML 放入电子表格单元格中,您试图解决/做什么?
  • 是的,我正在导入产品,并且有包含 HTML 结构的描述列。但是对于少数记录,HTML 租船者长度超过 50000。但 excel 单元格的默认限制是 32786。所以 HTML 不完整,产品页面格式不正确。

标签: php html css phpexcel


【解决方案1】:

MS Excel 有限制,也许您可​​以将 html 拆分为更多单元格以避免此限制。

例如尝试在给定维度拆分数组中的字符串:

$myHtmlArray = str_split ( $myHtmlVar, 32767 )

然后循环槽数组 a 打印对应的单元格数

【讨论】:

  • 我无法将内容拆分到其他单元格,因为我正在导入TMP_EXCEL.xlsx 文件以在 UI 中显示 HTML,并且只有一个字段是在那里可以在 UI 上显示 HTML 内容。
  • 明白,但这是一个 excel 限制:support.office.com/en-us/article/… 你可以压缩你的 html 吗?使用小类名,避免子类和基于父类的定位等.. ?
  • 是的,我尝试了该解决方案,但在删除空格、减少类名后,仍然存在字符长度问题。
  • 我不知道您的应用程序是如何工作的以及您的 html 的最大长度,但可以考虑在保存中进行替换,在获取中进行替换?例如:class -&gt; [c] | data-toggle -&gt; dtog | data-target -&gt; dtar -&gt; aria-expanded -&gt; aexp 等等..
  • 它对我不起作用,因为 HTML 字符长度为 70000
猜你喜欢
  • 2011-06-30
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
  • 2014-04-14
相关资源
最近更新 更多