Toimivaa excel skriptiä?

Oisko?

Eli oisko jollain vinkata toimivaan skriptiin mikä tulostaa siis mysql-kannasta php-skriptin avulla excel-tiedostoon?

Moni toimii ainakin melkein, mutta jos tulostan vaikkapa puhelinnumeroita niin jättää 0:t edestä pois... tyyliin 040123456 --> 40123456

12

1472

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Jejej

      Kysymys olis sinulle, että et kai käytä mysql:ssä puhelinnumeroille int tai muuta numeroille tarkoitettua tietotyyppiä?

      puhelin ja posti numeroille käytetään tekstille tarkoitettua esim varchar(30) vai kuinka pitkiä puhelinnumerot ovatkaan.

      selitys olla yksinkertainen 040 on ihan sama luku kuin 40.

      • itse aloittaja

        mutta excel ei sitä tajua... ihan sama kuin normaalistikin kun avaa excelin ja yrittä syöttää vaikkapa lukua 007, niin se ei onnistu muuttamatta formaattia -> text.

        Jotenkin sille pitäisi siis kertoa, että data format = text.


      • fidel1
        itse aloittaja kirjoitti:

        mutta excel ei sitä tajua... ihan sama kuin normaalistikin kun avaa excelin ja yrittä syöttää vaikkapa lukua 007, niin se ei onnistu muuttamatta formaattia -> text.

        Jotenkin sille pitäisi siis kertoa, että data format = text.

        Kokeile lisätä skriptissä merkki ' kentän arvon eteen, siis näin: '040555555. Sen pitäisi kertoa excelille, että kyseessä on tekstiä, ei numeroita.

        Onko sulla muuten joku syy, miksi käytät php:ta tiedon hakemiseen kannasta? Eiköhän Exceliin löydy datasource-palikka suoraan mysql-kantaan, ainakin Openofficessa tämä onnistuu heittämällä. Sitten vain excelin tietokanta-funktiolla haet tarvittavat kamat suoraan kannasta.


      • Jejej
        fidel1 kirjoitti:

        Kokeile lisätä skriptissä merkki ' kentän arvon eteen, siis näin: '040555555. Sen pitäisi kertoa excelille, että kyseessä on tekstiä, ei numeroita.

        Onko sulla muuten joku syy, miksi käytät php:ta tiedon hakemiseen kannasta? Eiköhän Exceliin löydy datasource-palikka suoraan mysql-kantaan, ainakin Openofficessa tämä onnistuu heittämällä. Sitten vain excelin tietokanta-funktiolla haet tarvittavat kamat suoraan kannasta.

        Eiköhän tuossa toimisi ihan välilyönti?

        Pikavilkasulla ainakin PHPExcelissä pystyy määrittää tietotyypin, luulisi sen onnistuvan muissakin?

        $objPHPExcel->getActiveSheet()->Set​CellValueExplicit('P1', '040555555', PHPExcel_Cell_DataType::TYPE_STRING​);

        http://www.codeplex.com/PHPExcel/


      • itse aloittaja
        fidel1 kirjoitti:

        Kokeile lisätä skriptissä merkki ' kentän arvon eteen, siis näin: '040555555. Sen pitäisi kertoa excelille, että kyseessä on tekstiä, ei numeroita.

        Onko sulla muuten joku syy, miksi käytät php:ta tiedon hakemiseen kannasta? Eiköhän Exceliin löydy datasource-palikka suoraan mysql-kantaan, ainakin Openofficessa tämä onnistuu heittämällä. Sitten vain excelin tietokanta-funktiolla haet tarvittavat kamat suoraan kannasta.

        Tokihan tuo ' -merkki edessä tulostaa postinumeron "oikein", mutta tällöin postinumeron eteen jää tuo "'" -merkki.... Mitä ei tietenkään siinä saisi olla.

        Haluan hakea nuo php:llä, jotta saan ne webhotellin tietokannasta kätevästi exceliin ilman mitään kikkareita.


      • itse aloittaja
        Jejej kirjoitti:

        Eiköhän tuossa toimisi ihan välilyönti?

        Pikavilkasulla ainakin PHPExcelissä pystyy määrittää tietotyypin, luulisi sen onnistuvan muissakin?

        $objPHPExcel->getActiveSheet()->Set​CellValueExplicit('P1', '040555555', PHPExcel_Cell_DataType::TYPE_STRING​);

        http://www.codeplex.com/PHPExcel/

        eli jos lisään esim. niin että puhelinnumeron eteen tulostuu välilyönti, ei toimi silloinkaan vaan excel ei huomioi koko välilyöntiä :/


      • fidel1
        itse aloittaja kirjoitti:

        Tokihan tuo ' -merkki edessä tulostaa postinumeron "oikein", mutta tällöin postinumeron eteen jää tuo "'" -merkki.... Mitä ei tietenkään siinä saisi olla.

        Haluan hakea nuo php:llä, jotta saan ne webhotellin tietokannasta kätevästi exceliin ilman mitään kikkareita.

        Ei ole nyt Exceliä käsillä millä kokeilla, mutta OpenOfficen Calc:ssa tuo "'" numeron eteen toimii. Se ei näy solun sisällössä eikä vaikuta solun käyttöön funktioissa. Sisältörivillä merkki näkyy, mutta sillä ei ole siellä mitään merkitystä.


      • Jejej
        itse aloittaja kirjoitti:

        eli jos lisään esim. niin että puhelinnumeron eteen tulostuu välilyönti, ei toimi silloinkaan vaan excel ei huomioi koko välilyöntiä :/

        Kokeilitkos tuota linkittämääni?
        Sillä tuon pitäisi toimia koska PHPExcel_Cell_DataType::TYPE_STRING​ kohdalla sanotaan että teksti kyseessä.

        Tuo välilyönnin lisäys pitää tehdä PHP:ssä, ei Excelissä, samoin tuo ' merkkikin.

        Vois tuota kokeilla ihan omalla koneella, kunhan kertoisit mitä Excel kirjastoa käytät, ellet tuota linkittämääni.


      • itse aloittaja
        Jejej kirjoitti:

        Kokeilitkos tuota linkittämääni?
        Sillä tuon pitäisi toimia koska PHPExcel_Cell_DataType::TYPE_STRING​ kohdalla sanotaan että teksti kyseessä.

        Tuo välilyönnin lisäys pitää tehdä PHP:ssä, ei Excelissä, samoin tuo ' merkkikin.

        Vois tuota kokeilla ihan omalla koneella, kunhan kertoisit mitä Excel kirjastoa käytät, ellet tuota linkittämääni.

        http://fundisom.com/phparadise/php/databases/mySQL_to_excel

        Tuollaista olen siis kokeillut, välilyönnin php-koodissa tein seuraavasti (samalla tapaa myös 'merkki), muuttaen tämän:
        elseif ($row[$j] != "") {
        77 $schema_insert .= "$row[$j]".$sep;
        78 }


        -->

        elseif ($row[$j] != "") {
        77 $schema_insert .= " " . "$row[$j]".$sep;
        78 }


        Latailin tuolta sun esimerkkisivulta paketin, mutta siinä tuli noin 2,5 megaa tiedostoja...


      • Jejej
        itse aloittaja kirjoitti:

        http://fundisom.com/phparadise/php/databases/mySQL_to_excel

        Tuollaista olen siis kokeillut, välilyönnin php-koodissa tein seuraavasti (samalla tapaa myös 'merkki), muuttaen tämän:
        elseif ($row[$j] != "") {
        77 $schema_insert .= "$row[$j]".$sep;
        78 }


        -->

        elseif ($row[$j] != "") {
        77 $schema_insert .= " " . "$row[$j]".$sep;
        78 }


        Latailin tuolta sun esimerkkisivulta paketin, mutta siinä tuli noin 2,5 megaa tiedostoja...

        Ahaa, tuo käyttämäsi ei sisällä mitään Excelin muotoiluja jne..., tuolla linkittämälläni pystyy tekee vaikka mitä joka selittää isomman koon. Mutta eihän se ole kuin 1.31 megaa, sitäkin pystyy vähentämään mikäli et tarvitse Excelin lukemista jne.... Classes on se hakemisto minkä nettiin siirrät, ei sinne tarvitse siirtää esimerkkejä ja manuaalia. Toki se on aika iso jos tuommonen yksinkertainenkin riittäisi.


        Tuossa käyttämässäsi 85 rivillä
        print(trim($schema_insert));

        Voisit kokeilla siihen tuon aikasemman muutoksen lisäksi
        print($schema_insert);

        Tuo trim poistaa välilyönnit ja muita merkkejä http://fi.php.net/manual/en/function.trim.php mutta tuo tuskin toimii.

        Mites olis manuaalinen toiminto?
        Lisäät ' tai muun merkin mitä et käytä tekstissä.
        Sitten valitset halutut solut ja muutat ne tekstityyppiseksi.
        Sitten etsi/korvaa toiminnolla poistat tuon ' merkin.

        Tai sitten puhelinnumero tähän tyyliin
        O4055555
        04055555

        Äkkivilkasulla nuo näyttää samalta, vaik ne eivät ole.


      • itse aloittaja
        Jejej kirjoitti:

        Ahaa, tuo käyttämäsi ei sisällä mitään Excelin muotoiluja jne..., tuolla linkittämälläni pystyy tekee vaikka mitä joka selittää isomman koon. Mutta eihän se ole kuin 1.31 megaa, sitäkin pystyy vähentämään mikäli et tarvitse Excelin lukemista jne.... Classes on se hakemisto minkä nettiin siirrät, ei sinne tarvitse siirtää esimerkkejä ja manuaalia. Toki se on aika iso jos tuommonen yksinkertainenkin riittäisi.


        Tuossa käyttämässäsi 85 rivillä
        print(trim($schema_insert));

        Voisit kokeilla siihen tuon aikasemman muutoksen lisäksi
        print($schema_insert);

        Tuo trim poistaa välilyönnit ja muita merkkejä http://fi.php.net/manual/en/function.trim.php mutta tuo tuskin toimii.

        Mites olis manuaalinen toiminto?
        Lisäät ' tai muun merkin mitä et käytä tekstissä.
        Sitten valitset halutut solut ja muutat ne tekstityyppiseksi.
        Sitten etsi/korvaa toiminnolla poistat tuon ' merkin.

        Tai sitten puhelinnumero tähän tyyliin
        O4055555
        04055555

        Äkkivilkasulla nuo näyttää samalta, vaik ne eivät ole.

        ei toiminut tuo trimmin poistaminen... se oli itsellänikin aiemmin mielessä ja voi olla että olin sitäkin jo kokeillut.

        tosiaan riittäis ihan tuollainen yksinkertainen skipti. kokeilin erästä toistakin mutta siinäkin aivan sama ongelma.. :/


    • ghjfjhf

      heittomerkki eteen '040123456, ei näy tulosteessa mutta nolla näkyy paperilla

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Maatalous- ja yritystuet pois, työeläkevaroilla valtion velka pois

      Suomi saadaan eheytettyä kädenkäänteessä, kun uskalletaan tehdä rohkeita ratkaisuja. Maatalous- ja yritystuet ovat hait
      Maailman menoa
      93
      3541
    2. Hei! Halusin vain kertoa.

      En tiedä luetko näitä, mutta näimme n.4vk sitten, vaihdoimme muutaman sanan ja tunsin edelleen kipinän välillämme. Katso
      Tunteet
      5
      1819
    3. Miksi ikävä ei helpotu vuosien jälkeenkään?

      Tänään olin ensimmäistä kertaa sinun lähtösi jälkeen tilassa, jossa vuosia sitten nähtiin ensimmäistä kerta. Ollessani
      Rakkaus ja rakastaminen
      7
      1610
    4. Teboili alasajo on alkanut

      Niinhän siinä kävi että teebboili loppuu...
      Suomussalmi
      31
      1381
    5. Tiesitkö? Suomessa lääkäri voi toimia ammatissaan, vaikka hän olisi seksuaalirikollinen

      Järkyttävää… Motin mukaan Suomessa lääkäri voi toimia ammatissaan, vaikka hän olisi yksityiselämässään syyllistynyt es
      Maailman menoa
      54
      948
    6. Oot kyl rakas

      Et tiiäkkään miten suuri vaikutus sulla on mun jaksamiseen niin töissä, kun vapaallakin❤️. Oot täysin korvaamaton. En t
      Ikävä
      35
      882
    7. Kirjoittaisit edes jotain josta tiedän

      Varmasti oletko se oikeasti sinä. Tänään tälläinen olo. 🫩
      Ikävä
      70
      882
    8. Miten voitkin olla aina niin fiksu

      ...aina niin huomaavainen, kärryillä ja kartalla. Yritän etsimällä etsiä sinusta jotain vikaa, että saisin pidettyä sydä
      Ikävä
      47
      820
    9. Sofia Zida puhuu rehellisesti suhteesta Andy McCoyhin: "Se on ollut mulle tavallaan..."

      Sofia ja Andy, aika hellyttävä parivaljakko. Sofia Zida on mukana Petolliset-sarjassa. Hänet nähtiin Yökylässä Maria Ve
      Suomalaiset julkkikset
      4
      787
    10. Mistä tietää, onko hän se oikea?

      Siitä, kun sitä ei tarvitse miettiä. Siitä, kun hänen olemassa oleminen ja ajatteleminen saa hymyilemään. Siitä, kun ha
      Ikävä
      60
      784
    Aihe