31. maj 2004 - 16:09Der er
9 kommentarer og 1 løsning
Eksport af mySQL til excel
Hej Er det muligt at lave en funktion i php, hvor man kan eksporter data fra en mySQL-database over i et Excel-dokument? Hvis ik det kan laves i php, kan det så laves på andre måder?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
31. maj 2004 - 16:12#1
Jeg tror kun det kan gøres manuelt. mySQL understøtter masser af eksportfunktionen, men jeg ved ikke hvordan excel skulle modtage automatisk.
Her fandt jeg denne: (har ikke mulighed for at afprøve)
Here is a COM function that creates an excel spreadsheet with any number of worksheets, containing data from a matching number of SQL queries. Be ware of the upper limit of excel worksheets. This function properly shuts down Excel on the server. /***************************/ function WriteExcel($strPath,$astrSheetName,$astrSQL){ /* This function takes a file save path, and array of sheet names and a corresponding array */ /* of SQL queries for each sheet and created a multi-worksheet excel spreadsheet*/ $C_NAME=__CLASS__."::".__FUNCTION__; $dbs=new clsDB; $exapp = new COM("Excel.Application") or Die ("Did not connect"); $intSheetCount=count($astrSheetName); $wkb=$exapp->Workbooks->Add(); $exapp->Application->Visible = 1; for ($int=0;$int<$intSheetCount;$int++){ $sheet=$wkb->Worksheets($int+1); $sheet->activate; $sheet->Name=$astrSheetName[$int]; $intRow=1; $qrySQL=$dbs->GetQry($astrSQL[$int],$C_NAME,__LINE__); $rstSQL=$qrySQL->fetchRow(DB_FETCHMODE_ASSOC); $astrKeyNames=array_keys($rstSQL); $intCols=count($astrKeyNames); $qrySQL=$dbs->GetQry($astrSQL[$int],$C_NAME,__LINE__); while($rstSQL=$qrySQL->fetchRow(DB_FETCHMODE_ASSOC)){ $strOut="";//initialize the output string for ($int2=0;$int2<$intCols;$int2++){//we start at 1 because don't want to output the table's index if($intRow==1){ $strOut=$astrKeyNames[$int2]; }else{ $strOut=$rstSQL[$astrKeyNames[$int2]]; } $sheet->activate; $cell=$sheet->Cells($intRow,($int2+1));//->activate; $cell->Activate; $cell->value = $strOut; }//end of colcount for loop $intRow++; }//end while loop }//end sheetcount for loop if (file_exists($strPath)) {unlink($strPath);} $wkb->SaveAs($strPath); $wkb->Close(false); unset($sheet); $exapp->Workbooks->Close(false); unset($wkb); $exapp->Quit; unset($exapp); unset($dbs); }//function WriteExcel
hvis du har phpmyadmin installeret, kan du bruge den til at eksportere til CSV (kommasepareret fil) ... nyere versioner af phpmyadmin kan også eksporetere til et xml-format.
ja det ved jeg godt. Men det jeg skal bruge er så man kan eksporter data unden at skulle ind i phpmyadmin... Kan man eksporter til CSV via et php-script?
ja, phpmyadmin er skrevet i php. csv er bare en tekstfil, hvor de enkelte felter er adskildt af ; og de enkelte rækker adskildt af \n du kunne jo lave noget a la : <?php $tablename = "tbl"; $result = mysql_query("SELECT * FROM `".$tablename."`") or die("Invalid query: " . mysql_error()); $linecount = 0; while ($row = mysql_fetch_array($result)) { if ($linecount++ > 0) echo "\n"; $fieldcount = 0; foreach ($row as $field) { if ($fieldcount++ > 0) echo ","; echo addcslashes($field, ",\n"); } } ?>
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.