通过ODBC驱动程序使用Microsoft Excel与PHP

时间:2011-02-17 13:26:34

标签: php excel odbc

我正在尝试使用ODBC连接插入数据并从Excel中选择数据。我已设法连接到它:

$dbh = new PDO("odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Dbq=$file_name", $username, $password);

但是,我不确定如何查询Excel,因为这里有最少的文档!我试过这个:

$query = "INSERT INTO $sheet ($cell) VALUES ($value)";

$result = $dbh->query($query);

但这会导致错误:

  

数组([0] => 07002 [1] => -3010 [2]   => [Microsoft] [ODBC Excel驱动程序] Microsoft Office Access数据库   引擎找不到对象   '工作表Sheet1'。确保对象存在并且   你拼写它的名字和路径   名字正确。 (SQLExecute [-3010] at   \ text \ pdo_odbc \ odbc_stmt.c:254)[3] =>   07002)

通过对象,希望它们意味着一张excel表?

感谢大家的帮助

2 个答案:

答案 0 :(得分:2)

你需要使用ODBC吗?我总是觉得 * 很痛苦。
如果您没有被迫使用ODBC,我建议您尝试使用PHPExcel类here(非附属),这使得我很多时候很容易从PHP中读取和编写Excel。

如果您使用Excel打开Excel工作表并确认它确实包含名为“Sheet1”的工作表,您可能希望扩大搜索范围 - 工作表或单元格是否可能被锁定以防止编辑?这可能会导致最奇怪的错误。

答案 1 :(得分:1)

Sheet1在Excel中称为Sheet1 $。在this way are read-only by default中打开的Excel工作簿。