#! /opt/local/perl/bin/perl # vim: fenc=utf-8 enc=utf-8: use strict; use warnings; use utf8; use DBI; use Spreadsheet::WriteExcel; my $dbfile = 'utf8.db'; my $xlsfile = 'utf8.xls'; my $dbh = DBI->connect( "dbi:SQLite:dbname=$dbfile", "", # no user "", # no pass ) or die $DBI::errstr; $dbh->{sqlite_unicode} = 1; $dbh->do(" CREATE TABLE IF NOT EXISTS obst ( name TEXT, desc TEXT ); ") or die $dbh->errstr; my $sth = $dbh->prepare( qq~INSERT INTO obst VALUES( "Äpfel", "lecker" );~ ) or die $dbh->errstr; $sth->execute() or die $sth->errstr; my $xls = Spreadsheet::WriteExcel->new($xlsfile); $sth = $dbh->prepare( qq~SELECT * FROM obst;~ ) or die $dbh->errstr; $sth->execute() or die $sth->errstr; my $wb = $xls->add_worksheet( 'obst' ); $wb->write_col( 0, 0, $sth->fetchall_arrayref() );