目录
首页 笔记 详情

WordPess 上传 Excel 表格并保存为 HTML 表格文章内容


下面我来为大家简单介绍一下导入 Excel 表格到 WordPress 数据库的方法,本文的实现方法中用到了PHPExcel 库,首先我们假设你已经引入了这个库。

上传 Excel 表格,并保存为附件,附加到文章。

这一步相对简单,具体的步骤就不说了,很多 Metabox 插件生成的表单都支持添加一个自定义函数作为回调,当然,如果你对 WordPress Metabox API 非常熟悉的话,也可以直接做一个上传 Excel 文件用的 Metabox。在这里,关键的一步就是获取上传的文件,并保存到自定义字段。

update_post_meta( $post_ID, 'excel_import', $improt_data );//$improt_data 为Excel文件地址

获取保存的自定义字段

在上一步中,我们把上传的 Excel 附件以附件 ID 的方式保存到了自定义字段,在这一步,我们先获取保存的 Excel 附件 ID,然后再根据附件 ID 获取 Excel 文件的实际路径。得到了 Excel 文件后,我们就可以用 PHPExcel 库读取文件,然后根据读取的信息生成一个 HTML 表格,然后把这个表格保存到自定义字段就可以了。

// 获取 Excel 附件 ID
$excel_id = get_post_meta( $post_ID, 'excel_import', true );

// 获取 Excel 文件的实际路径
$excel_file = get_attached_file( $excel_id );

// 实例化 PHPExcel 加载文件类
$objPHPExcel = PHPExcel_IOFactory::load( $excel_file );

// 开始读取文件,并生成 HTML 表格
ob_start();

foreach ( $objPHPExcel->getWorksheetIterator() as $worksheet ) {

  $highestRow = $worksheet->getHighestRow(); // 获取最大行数
  $highestColumn = $worksheet->getHighestColumn(); // 获取最大列数
  $highestColumnIndex = PHPExcel_Cell::columnIndexFromString( $highestColumn );

  echo '<table>';
  for ( $row = 1; $row <= $highestRow; ++$row ) {
    echo '<tr>';
      for ( $col = 0; $col < $highestColumnIndex; ++$col ) {
        $cell = $worksheet->getCellByColumnAndRow( $col, $row );
        $val = $cell->getValue();
        echo '<td>' . $val . '</td>';
      }
    echo '</tr>';
  }
  echo '</table>';

}

$output = ob_get_contents();
ob_end_clean();

update_post_meta( $post_ID, 'excel_imported_content', $output );// 把生成的 HTML 表格保存到自定义字段中,前台显示的时候,直接调用这个自定义字段就可以了。

如果要在文章内容中输出,我们可以做个判断后再调用即可。

get_post_meta( $post->ID, 'excel_imported_content', true );

写笔记

咨询

您的电子邮箱地址不会被公开。 必填项已用*标注