WordPess 导入 Excel 表格并保存为 HTML 表格到自定义字段
文 / @WordPress主题
使用WordPress开发网站时的数据导入方法
我是一名WordPress开发者,今天我来和大家分享一个提高WordPress开发效率的方法——直接导入Excel表格到数据库。特别是对于数据量非常大的情况,一个个在后台上传太浪费时间了。
第一步:上传Excel表格并保存为附件,附加到文章
这个步骤比较简单,关键的一步是获取上传的文件并保存到自定义字段。具体可以通过添加一个自定义函数作为回调来实现上传文件,也可以做一个上传Excel文件用的Metabox,对于对WordPressMetaboxAPI非常熟悉的人来说,这种方法更容易上手。
$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表格,而没有根据字段类型导入相应的文章字段。如果需要将Excel表格里面的数据导入到文章字段(如标题、正文等),可以在第二步生成HTML表格的时候做一些判断,然后写入相应的字段。如果您对本文中的方法有更好的实现方式或者其他疑问,请在评论区与我交流。
相关文章
-
如何创建WordPress古腾堡编辑器的区块(PHP+原生JS) 2024-01-10 01:01:06
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45