Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 4.104 pregleda

Najnovija ↓

Export mysql u excel-slova sa kvacicama 22.02.2012. u 09:33 · pre 178 meseci #1
Zdravo, imam problem kod exporta tabele iz mysql baze podataka u excel. Uradim export bez problema, ali mi ne mi umjesto slova čćđ ispisuje upitnike.
Kako da ovo riješim?

Code:

<?PHP
$DB_Server = "";        
$DB_Username = "";                 
$DB_Password = "";                
$DB_DBName = "";               
$DB_TBLName = "";               

$sql = "Select * from $DB_TBLName ORDER BY id ASC";
$Use_Title = 1;
$now_date = DATE('m-d-Y H:i');
$title = "Dump For Table $DB_TBLName from Database $DB_DBName on $now_date";

$Connect = @MYSQL_CONNECT($DB_Server, $DB_Username, $DB_Password)
     or DIE("Couldn't connect to MySQL:<br>" . MYSQL_ERROR() . "<br>" . MYSQL_ERRNO());
$Db = @MYSQL_SELECT_DB($DB_DBName, $Connect)
     or DIE("Couldn't select database:<br>" . MYSQL_ERROR(). "<br>" . MYSQL_ERRNO());
$result = @MYSQL_QUERY($sql,$Connect)
     or DIE("Couldn't execute query:<br>" . MYSQL_ERROR(). "<br>" . MYSQL_ERRNO());

IF (ISSET($w) && ($w==1))
{
     $file_type = "msword";
     $file_ending = "doc";
}ELSE {
     $file_type = "vnd.ms-excel";
     $file_ending = "xls";
}
HEADER("Content-Type: application/$file_type");
HEADER("Content-Disposition: attachment; filename=database_dump.$file_ending");
HEADER("Pragma: no-cache");
HEADER("Expires: 0");
IF (ISSET($w) && ($w==1)) //check for $w again
{
     IF ($Use_Title == 1)
     {
         ECHO("$title\n\n");
     }
     $sep = "\n"; //new line character
 
     WHILE($row = MYSQL_FETCH_ROW($result))
     {
         $schema_insert = "";
         FOR($j=0; $j<mysql_num_fields($result);$j++)
         {
         $field_name = MYSQL_FIELD_NAME($result,$j);
         $schema_insert .= "$field_name:\t";
             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 .= "\t";
         PRINT(TRIM($schema_insert));
         PRINT "\n----------------------------------------------------\n";
     }
}ELSE{
     IF ($Use_Title == 1)
     {
         ECHO("$title\n");
     }
     $sep = "\t"; //tabbed character
     FOR ($i = 0; $i < MYSQL_NUM_FIELDS($result); $i++)
     {
         ECHO MYSQL_FIELD_NAME($result,$i) . "\t";
     }
     PRINT("\n");
     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";
     }
}
?>
Potpis
damaki
Re: Export mysql u excel-slova sa kvacicama 22.02.2012. u 13:45 · pre 178 meseci #2
A kako ti je podešena podrška za jezik na tom računaru na kojem pregledaš te podatke u Excelu? Ako je u pitanju Windows 7, ideš na Control Panel > Region and Language > jezičak Adminsitrative > klikneš na Change System Locale u "Language for non-Unicode programs" i odabereš Serbian (Latin), i obavezno mora restart nakon toga. Ako si tako podesio, Excel bi morao da prikazuje naša slova.
Re: Export mysql u excel-slova sa kvacicama 23.02.2012. u 00:47 · pre 178 meseci #4
Koliko vidim, ovo u suštini i nije pravi Excel dokument nego tab separated lista elemenata koju Excel importuje prilikom otvaranja. Da li si siguran da je taj fajl stvarno enkodovan sa UTF-8? Pokušaj da ga fiksiraš u zaglavlju, npr.:

Code:
header( “Content-type: application/vnd.ms-excel; charset=UTF-8″ );


A s obzirom da Excel veoma dobro čita HTML dokumente koji su formatirani u obliku tabele, možeš pokušati da ga exportuješ upravo kao HTML fajl, znači nešto poput:

Code:
header("Content-Type:   text/html; charset=utf-8");


Re: Export mysql u excel-slova sa kvacicama 24.02.2012. u 15:25 · pre 178 meseci #8
A ako ti nista od navedenog ne pomaze (kao sti ni ja nisam nasao resenje kada mi je trebalo),ti lepo odradi str_replace na svim slovima koja imaju kvacicu pre upisa u excel i problem resen :)
Potpis
----------------------------------------------------------
www.oxo.rs
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme