Avatar billede EveryMA Mester
07. maj 2017 - 21:14 Der er 12 kommentarer og
1 løsning

Hente indhold fra XLS-fil

Hej,

Jeg skal have fundet en måde (gennem javascript, php, html etc) som kan fetche/hente indhold fra en XLS-fil der ligger online. Altså ikke en fil, der er på min server/computer.

Der findes en masse guides, men de alle viser det samme, hvor JS-koden går ind og henter fra en XLS-fil der ligger på ens egen computer. Jeg har forsøgt at smække URL'en ind, men det går ikke.

Er der en logisk måde hvor man kan hente indhold fra en XLS fil der ligger online?

(hvis ja: hvordan vælger man så outputtet fra de forskellige kolonner?)

Tak!
Avatar billede acore Ekspert
07. maj 2017 - 21:36 #1
Kan det være php? Phpexcel - https://github.com/PHPOffice/PHPExcel - er i så fald et godt bud. Der er flere eksempler, der viser hvordan.
Avatar billede EveryMA Mester
08. maj 2017 - 18:03 #2
Helst JS.

Men jeg synes jeg ser det samme med php som JS. Man læser fra egen server/computer. Det er ikke tilfældet her. Den skal indlæse fra en XLS-fil der er placeret på et helt andet domæne.
Avatar billede garrett Seniormester
09. maj 2017 - 08:13 #3
I php kan du bruge file_get_contents()(http://php.net/manual/en/function.file-get-contents.php) til at gemme en midlertidig kopi lokalt på den server der afvikler dine php-scripts og så læse den v.h.a. PHPExcel derfra.
Avatar billede EveryMA Mester
09. maj 2017 - 14:31 #4
Jeg har kigget linket igennem men den forklarer ik så meget når det kommer til at outputte indhold fra en online XLS-fil.

Alternativt kunne jeg også lede efter et script der udskriver fra min egen XLS på mit eget domæne?
Eller converte XLS til JS?

jeg har søgt på begge dele. men det virker bare ikke til at være noget som folk ofte har brugt tidligere.
Avatar billede olsensweb.dk Ekspert
09. maj 2017 - 16:48 #5
>Eller converte XLS til JS?
det tror jeg ikke du kan finde, men muligvis xls2json / xls2csv / xls2xml.


har du mulighed for at hente xls filen ned i et andet format ?? (json / csv / xml)

JSON (JavaScript Object Notation) formattet vil være at foretrække, da det er direkte understøttet i programmerings sproget JS, og også nemt at arbejde med via PHP.

du kan evt hente filen via AJAX (Asynchronous JavaScript And XML)

link
ref google "ajax xls parse"
https://aspdotnetcodehelp.wordpress.com/2016/08/13/how-to-read-excel-files-in-javascriptjquery-and-convert-the-value-to-json/
http://codetheory.in/parse-read-excel-files-xls-xlsx-javascript/
http://stackoverflow.com/questions/8238407/how-to-parse-excel-file-in-javascript-html5
Avatar billede acore Ekspert
09. maj 2017 - 19:29 #6
I PHP:
- Hent filen som foreslået i #3
- Læs filen som foreslået i #1 og senere

Eller i kode:

require_once(INFUSIONS.'PHPExcel/PHPExcel.php');
require_once(INFUSIONS.'PHPExcel/PHPExcel/IOFactory.php');
// hent
file_put_contents("tmpfile.xls", fopen("http://www.someurl.dk/somefile.xls", 'r'));
// læs
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objectReader->load("tmpfile.xls");
$objWorksheet = $objPHPExcel->setActiveSheetIndexbyName("Sheet1");
$value = $objWorksheet->getCell("A1")->getValue();
...
Avatar billede acore Ekspert
09. maj 2017 - 19:33 #7
...og når jeg ikke foreslår en js løsning, er det kun fordi jeg ikke har prøvet det...
Avatar billede acore Ekspert
09. maj 2017 - 19:34 #8
Rettelse:

require_once(INFUSIONS.'PHPExcel/PHPExcel.php');
require_once(INFUSIONS.'PHPExcel/PHPExcel/IOFactory.php');
// hent
file_put_contents("tmpfile.xls", fopen("http://www.someurl.dk/somefile.xls", 'r'));
// læs
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("tmpfile.xls");
$objWorksheet = $objPHPExcel->setActiveSheetIndexbyName("Sheet1");
$value = $objWorksheet->getCell("A1")->getValue();
...
Avatar billede EveryMA Mester
09. maj 2017 - 19:44 #9
#5 - filen ligger online på et andet domæne hvor den opdateres et par gange i måneden. men hvis ikke jeg kan løse det ved at rive indhold ud fra en xls fil på et andet domæne, så kan jeg også selv hente den ned og smide den op på mit eget domæne. det kræver bare at jeg gør det hver gang den opdateres.

acore - jeg er ikke php mand men derimod asp man. jeg er meget gammeldags når det kommer til kodesprog og holder mig til asp klassisk (har fået nok smæk for det :-) )

i denne linje:
file_put_contents("tmpfile.xls", fopen("http://www.someurl.dk/somefile.xls", 'r'));

du skriver tmpfile.xls og senere somefile.xls

hvorfor ikke den samme?  jeg har 1 xls fil, ikke 2
Avatar billede acore Ekspert
09. maj 2017 - 20:50 #10
Den linie, du nævner, henter filen fra den eksterne URL og gemmer den lokalt som'tmpfile.xls'. Det er den fil, som phpexcel læser fra. Jeg tror ikke, at phpexcel kan læse direkte fra en URL, men har ikke prøvet.
Avatar billede EveryMA Mester
15. maj 2017 - 19:56 #11
Jeg har valgt at gøre det manuelt og skrive alt ind fremfor at hente det fra den eksterne fil. Har været forbi flere sprog og det handler altid om at læse fra sin egen fil. Kan ikke finde en guide til at læse direkte fra en fil på et andet domæne.

acore smid gerne point :)
Avatar billede acore Ekspert
15. maj 2017 - 19:59 #12
Du skal vist bare vi point til dem du synes - nyt system
Avatar billede acore Ekspert
15. maj 2017 - 19:59 #13
Point = markere som svar
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

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