#!/usr/local/bin/perl
use DBI;
$table = "table"; $db = "base"; $db_serv = "192.168.0.1"; $user = "ser"; $passwd = "ser";
$c = DBI->connect("DBI:mysql:$db:$db_serv", $user, $passwd);
$statement = "select count(*) from $table";
$cc = $c->prepare($statement);
$ccc = $cc->execute;
@row = $cc->fetchrow_array;
$n = $row[0];
$statement = "select * from $table";
$cc = $c->prepare($statement);
$ccc = $cc->execute;
open F, "$ARGV[0]";
for ($i=0; $i<$n; $i++) {
@row = $cc->fetchrow_array;
print F "$row[0];$row[1];$row[3]\n";
}
Запускаем скрипт:
./mysql_2_exel.pl file
После этого можно открыть файл 'file' экселем.URL:
Обсуждается: http://www.opennet.me/tips/info/136.shtml
А у меня Exel не съел этот файл с точкой с запятой в качестве разделителя, зато когда сделал таковым табулятор все встало на места... Может конечно дело в установках Exelя, может в том что я недоконца код понял... я его просто в php переписывал...
Во первых название совета не отвечает его сути. Создаётся никакой не Excel файл а CSV.Во вторых не используется стандарт CSV файла а как автору захотелось так и экспортнул. Соотв. файлы получаются битые и никто их читать не будет (в т.ч. M$ Excel)
В третьих есть готовые приличные mysql2csv
http://www.fs.tum.de/~richtesi/software/mysql2csv/
Да, а в четвёртых,SELECT * INTO OUTFILE "/tmp/result.csv"
FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\r\n"
FROM test_table;
У меня такая задача: надо не только конвертировать из sql в excel но и расположить по з записи на строку чтобі печатать потом на принтере !