欢迎光临 WordPress 智库!

WordPess 导入 Excel 表格并保存为 HTML 表格到自定义字段

WordPess 导入 Excel 表格并保存为 HTML 表格到自定义字段

WordPess 导入 Excel 表格并保存为 HTML 表格到自定义字段

使用 WordPress 开发网站时,有时候会遇到数据量非常大的情况,如果一个个在后台上传,效率太低了。提高效率的一个有效方法是直接导入 Excel 到数据库,特别是针对一些结构性不强的数据,如果数据是现成的 Excel 表格,那就太好了,直接上传,保存文章,数据就直接保存在数据库中了,可以节省不少时间。下面我来为大家简单介绍一下导入 Excel 表格到 WordPress 数据库的方法,本文的实现方法中用到了鼎鼎大名的 PHPExcel 库,首先我们假设你已经引入了这个库。

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

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

$improt_data = sanitize_text_field( $_POST[ 'wizhi_excel_import' ] );
update_post_meta( $post_ID, 'wizhi_excel_import', $improt_data );

第二步:获取保存的自定义字段

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

// 获取 Excel 附件 ID
$excel_id = get_post_meta( $post_ID, 'wizhi_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();

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

总结和说明

这个案例里面,实际需求只是把 Excel 表格里面的数据导入,转换成 HTML 表格,所以,我们直接粗暴的保存成了 HTML 表格的方式,并没有根据字段类型导入相应的文章字段里面。如果需要把 Excel 表格里面的数据导入到文章字段,如标题、正文等,在第二步生成 HTML 表格的时候,做一些判断,然后写入相应的字段就可以了,不同的应用场景,实现方法各不相同,在这是就不展开讲了。如果你对文章中介绍的方法有疑问,或者有更好的实现方法,欢迎在评论中交流。

本站提供 WordPress 主题定制开发服务

本站长期承接 WordPress 主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有 8 年 WordPress 开发经验,如果你想 用 WordPress 开发网站, 请联系 QQ: 470266798,或邮箱: 4626395@gmail.com 咨询。

发表评论

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

*