У меня есть файл в формате .shp, и он мне нужен, чтобы программно преобразовать его в электронную таблицу Excel. Я хочу сделать это с помощью PHP или JavaScript.
Программное преобразование файлов .shp в электронную таблицу Excel
Ответы (1)
После того, как я использовал небольшую библиотеку PHP ShapeFile, вы можете получить ее на phpclasses.org. Хотя это немного не очень хороший дизайн, он работает.
Вот небольшой пример из моего собственного кода:
require_once 'lib/ShapeFile.inc.php';
$shp = new ShapeFile($filename, array('noparts' => false));
if ($shp->getError() !== '')
print_r($shp->getError());
else
{
$records = array();
while ($record = $shp->getNext())
{
$dbf_data = $record->getDbfData();
$shp_data = $record->getShpData();
//Dump the information
$obj = array(
'type' => $shp->getShpTypeName($record->getShpType())
);
$obj['shape'] = $shp_data;
$obj['meta'] = $dbf_data;
$records[] = $obj;
}
}
print_r($records);
Итак, после этого $records
содержит все данные из шейп-файла. Конечно, вам потребуется некоторое время, чтобы понять, что такое шейп-файл и какие данные он может содержать (при условии, что вы с ним не знакомы). Начните с википедии. На самом деле есть куча массивов с некоторыми метками.
Затем используйте php excel lib (просто ищите так), и все готово :)
person
dmitry
schedule
27.01.2012
Большое спасибо брат! Позвольте мне попробовать это.
- person Noman bin Rizwan; 27.01.2012
выдает ошибку: вызов функции-члена assign() для не-объекта
- person Noman bin Rizwan; 27.01.2012
конечно, выдается ошибка, потому что у вас нет объекта $view :) Это просто артефакт из существующего кода. Это означает, что переменная должна быть доступна в шаблоне. Код — это просто ссылка. удалите строку с
$view->assign
и в конце выполните print_r($records).
- person dmitry; 27.01.2012
Просто примечание: возникли проблемы с запуском WAMP 2.2.22, PHP 5.4.3 и
ShapeFile.inc.php
. Начиная с PHP 5.3 php_dbase
больше не включается. Здесь у меня есть рабочее расширение... hrazdil.info/blog/
- person Terry; 13.05.2013