当前位置: 首页 > 面试题库 >

阅读XLSX工作表以使用PHPExcel馈送MySQL表

韩宜春
2023-03-14
问题内容

我发现PHPExcel库非常适合用PHP操作Excel文件(读,写等)。

但是文档中没有任何地方解释 如何读取XLSX工作表来馈送MySQL表

对不起这个愚蠢的问题,但我的工作需要它,但在网络上找不到任何答案。

一个小例子可能会很有帮助。

非常感谢。

更新 :

我回答我的问题:

我在文档中找到的唯一可以帮助我的代码是读取Excel文件并将其显示在HTML表中:

`require_once 'phpexcel/Classes/PHPExcel.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load("edf/equipement.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();

$highestRow = $objWorksheet->getHighestRow(); 
$highestColumn = $objWorksheet->getHighestColumn();

$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);

echo '<table border="1">' . "\n";
for ($row = 1; $row <= $highestRow; ++$row) {
  echo '<tr>' . "\n";

  for ($col = 0; $col <= $highestColumnIndex; ++$col) {
    echo '<td>' . $objWorksheet->getCellByColumnAndRow($col, $row)->getValue() . '</td>' . "\n";
  }

  echo '</tr>' . "\n";
}
echo '</table>' . "\n";`

我知道我可以使用循环来馈送我的MySQL表,但是我不知道如何…我不了解OOP …

有人可以帮我吗?


问题答案:

第一个for循环遍历行,第二个循环遍历列。因此,对于您的“问题”有很多解决方案。

例如,您可以填充一个数组并为每一行创建一个插入语句。如下:

$rows = array();
for ($row = 1; $row <= $highestRow; ++$row) {
  for ($col = 0; $col <= $highestColumnIndex; ++$col) {
    $rows[$col] = mysql_real_espace_string($objWorksheet->getCellByColumnAndRow($col, $row)->getValue());
  }

  mysql_query("INSERT INTO your_table (col1,col2) VALUES ($rows[1],$rows[2])");
}

显然,可以改进此代码。



 类似资料:
  • 我想完全读取Excel表并使用AJAX将每一行发送到另一个页面进行处理。所以我使用了以下代码将excel表数据转换为JSON数组(库中提供的参考PHPExcel示例): 这里是上传文件的位置,要读取该位置以使用AJAX将行单独发送到另一个页面。我在javascript中使用作为 但是excel工作表包含一些合并单元格,因此PHPExcel无法读取这些合并单元格中的值。因此,这些单元格中的值被读取为

  • 我有一个问题与npm,我不能安装任何东西。以下是错误消息: 知道这是为什么吗?这是我的网络设置,似乎我没有配置任何代理。我还禁用了所有的防火墙。

  • 线程“main”org.apache.poi.xssf.usermodel.xssfactory.createdocumentPart(xssfactory.java:62)在org.apache.poi.poi.xssf.usermodel.xssfworkbook(xssfworkbook.java:271)在org.apache.poi.xssf.usermodel.xssfactory.c

  • 我正在处理一个非常大的工作表,这个工作表是从数据库中创建的,有40列3000多行,我在Php Excel中设置了它的标题 现在我已经创建了一个新的工作表,我可以在其中设置不同单元格的值。我需要使用countifs公式来显示从 工作表到 工作表的结果 null 提示了一个文件,但当我在记事本中打开该文件时,它显示了以下文本http://pastie.org/5584430

  • 我在MySQL Workbench上得到了以下查询 因为两个表中的products_id是相同的,并且这些是主键,所以我如何从一个查询输出中编辑两个表。正如它目前所说:只读。

  • 然而,我现在无法在任何修订中使用导出链接到xlsx,除了我的工作表上的最新版本。当跟随这个链接时,我得到一个页面,上面写着:“Google Docs遇到错误。请尝试重新加载这个页面,或者几分钟后返回它。” 我还注意到REST Api V3没有提供导出Google Drive文档以前修订的方法。因此,我想知道它在V2上不再工作的原因是因为它不能再做了,还是只是暂时的失败。