Moi.
Tarkoituksena on on tulostaa tietty rivi excel-taulukosta. Ilmeisesti helpointa on muuntaa excel taulukko csv:ksi ja käsitellä sitä sitten php:llä.
Csv:n lukeminen ja tulostaminen kokonaisuudessaan onnistuu helposti, täältä löydetyn ohjeen avulla. Mutta tarkoituksena on tosiaan tulostaa vain yksi tietty rivi? Olisiko vinkkejä kuinka tulisi edetä.
Oikea rivi haettaisiin muuttujan avulla, jonka sisältö vastaa excelin ensimmäisen sarakkeen solusta löytyvää tekstiä.
Käyt läpi csv:n rivit, ja tarkastat onko alussa haluamaasi merkkijonoa. Jos on niin tulostetaan, muuten ei. Tuossapa tuo pseudona. Jos ihan uusi olet PHP:ssä niin tiedoston rivit saat taulukkoon file -funktiolla, rivit voit käydä lävitse for-silmukalla ja tarkastuksen tietty tehdä if-lauseella ja merkkijonotarkistuksen substr-funktiolla. Noilla työkaluilla homman pitäisikin jo onnistua.
Joop, kiitoksia vaan, ihan pseudo tasolla tätä mietinkin.
Onnistuinkin nyt lukemaan, halutun merkkijonon löytyessä, rivin taulukkoon, josta tietoja onkin näppärä hypistellä. Lähinnä ongelmalliselta tuntui, kuinka csv:stä hahmottuu nuo rivit..
Tarvinnee tehdä vielä tedä automaatio excel taulukon kääntämiseksi CSV:ksi.
Vai onko sopiva tapa vaatia käyttäjältä kääntämistä CSV:ksi?
Riippuu ihan tarkoituksesta onko se sopivaa. Jos koodia tullaan käyttämään paljon, ajanee aikasäästö siinä ettei tarvitse exportata CSV:ksi lopulta sen aikamäärän ohitse mikä kooditason ratkaisun tekemiseen kuluu (siis että otat käyttöön PHP:lle sen konvertterin että se tehtäisiin automaattisesti).
Ite tein vähän aikaa sitten tällästä. Sellanen bugi on että tekeen loppuun yhen turhan solun. mutta idea kuitenkin on, että jos missä tahansa kohdassa tiedostoa on "tägi" taulukko ja taulukko_loppuu,niin siltä väliltä luodaan taulukko. Jos joku innostuu parantelemaan tätä niin laittakaa tänne näkyviin.
function tulostacsv($taulu) { $taulu="<table><tr><td>{$taulu[1]}</table>"; $taulu=str_replace("<br />","</td></tr><tr><td>", $taulu); $taulu=str_replace(";","</td><td>", $taulu); return $taulu; } $data = file_get_contents("tiedosto.htm"); $data= nl2br($data); $data = str_replace("\n","", $data); $data = preg_replace_callback ("/taulukko:(.*?)taulukko_loppuu/i","tulostacsv", $data);
Aihe on jo aika vanha, joten et voi enää vastata siihen.