Avatar billede nemlig Professor
31. juli 2013 - 21:28 Der er 4 kommentarer og
1 løsning

Udtræk til Excel med automatisk kolonnebredde

Jeg har lavet et udtræk fra MySql til Excel, men vil gerne have, at kolonner justeres automatisk.

Nogen der har en løsning på dette?

Jeg benytter dette script: (ved godt det ikke er MySQLi, men der kommer senere):

<?php
$filename = "Deposita"; 
$file_ending = "xls";

//header info for browser
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");

/*******Start of Formatting for Excel*******/
//define separator (defines columns in excel & tabs in word)
$sep = "\t"; //tabbed character

//start of printing column names as names of MySQL fields
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "\t";
}
print("\n");
//end of printing column names

//start while loop to get data
    while($row = mysql_fetch_row($result))
    {
        $schema_insert = "";
        for($j=0; $j<mysql_num_fields($result);$j++)
        {
            if(!isset($row[$j]))
                $schema_insert .= "NULL".$sep;
            elseif ($row[$j] != "")
                $schema_insert .= "$row[$j]".$sep;
            else
                $schema_insert .= "".$sep;
        }
        $schema_insert = str_replace($sep."$", "", $schema_insert);
        $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
        $schema_insert .= "\t";
        print(trim($schema_insert));
        print "\n";
    }
?>
Avatar billede repox Seniormester
31. juli 2013 - 22:06 #1
Det er ikke noget du kan bestemme - det afgør det program du åbner regnearket i.
Avatar billede nemlig Professor
31. juli 2013 - 22:20 #2
Hmmm - det ser ud til, at det er muligt i php-scriptet PHPexcel:

http://phpexcel.codeplex.com/

Jeg kan ikke få scriptet til at virke, hvorfor jeg ikke bare bruger det.

Men ved du så om det er muligt, at sætte en bestemt kolonnebredde i fx kolonne A.

I scriptet phpexcel, ser det ud til, man gør sådan her:

getColumnDimension('A')->setWidth(12.5);
Avatar billede nemlig Professor
02. oktober 2013 - 22:36 #3
Jeg er ikke kommet videre....

Repox: Smid et svar, og jeg lukker.
Avatar billede nemlig Professor
18. januar 2014 - 23:15 #4
Smider Repox lige et svar :)
Avatar billede repox Seniormester
18. januar 2014 - 23:29 #5
det får du her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester