Autor | Zpráva | ||
---|---|---|---|
gurgen Profil |
Ahoj našel jsem následující script pro export externího csv excelu do html, jediné co mi vadí jsou čísla řádků (1, 2, 3 ...), lze to nějak obejít?
Případně poznáte jiné hotové řešení? Se zachováním možnosti seřazovat podle sloupce a generovat pomocí externího csv? |
||
Časová prodleva: 6 dní
|
|||
sysel Profil |
#2 · Zasláno: 16. 3. 2017, 21:28:05
Hm,
- co je to, podle Vás, "externího csv excelu"; "csv"=comma separated values, je způsob zápisu tabulky, kdy jednotlivé položky jsou oddělovány čárkami a každý řádek tvoří jeden záznam o stejném počtu položek; většina programů pro práci s tabulkami (tzv. spreadsheet) má importní filtr pro "csv" formát, kde lze vybrat typ separátoru (nemusí to být nutně jenom čárka, ale volit lze mezi středníkem, pomlčkou, mezerou nebo si zadat vlastní oddělovač), popřípadě lze akceptovat textové řetězce ohraničené uvozovkami, často lze i zvolit vstupní kódovací tabulku. - jaký je vlasrně problém? co je předpokládaným vstupem, co se má získat na výstupu? BTW: běžné tabulkové kalkulátory (spreadsheety) umí importovat jednodouchou tabulku ve formátu HTML, některé mohou svou pracovní tabulku do formátu HTML exportovat (nebo uložit jako ...) - zkonvertovat tabulku z formátu csv do formátu HTML lze celkem snadno i v jakémkoliv textovém editoru: na začátek každého řádku se umístí tagy: <tr><td> na konec každého řádku se umístí tagy: </td></tr> každou odělovací čárku vyměníte za tagy: </td><td> nad první řádek umístíte tagy: <html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></head><body><table> --- namísto utf-8 použijete správné označení Vámi použitého kódování češtiny pod poslední řádek umístíte tagy: </table></html> Takové úpravy lze samozřejmě provést najednou pomocí různých programových prostředků, například v Linuxu pomocí skriptovatelného editoru "sed". Nebo lze jednoduše tabulku ve formátu csv naimportovat do LibreOffice nebo OpenOffice kalkulační tabulky a vzápětí vyexportovat (uložit jako ..) ve formátu HTML. To sice tabulku poněkud nafoukne různými zbytečnostmi jako css, ale použitelné to bude. Hm. |
||
gurgen Profil |
#3 · Zasláno: 17. 3. 2017, 05:56:32
šlo mi o to, aby stačilo při nalezení chyby dat v tabulce pouze opravit excel a ten nahrát na web, vyhnout se tak složitosti celé vše znovu generovat.
Tohle splňuje a podařilo se mi pomocí css nepotřebný sloupec skrýt, pouze mám nyní problém ještě k převedením kodování. Pomocí PSPad editoru středníky nahradím čárkami, ale kodování mi prostě nechce projít |
||
sysel Profil |
#4 · Zasláno: 17. 3. 2017, 09:46:14
Inu, tak když nejde převést kódování, pak zvážit možnost přijmout to kódování jako hlavní a uvést je v tagu <meta . . charset=. . >. Jest-li sveřepě trváte na práci v MS Windows, pak to nejspíše bude UNICODE.
|
||
gurgen Profil |
#5 · Zasláno: 17. 3. 2017, 11:10:41
díky za radu a zkusím jej uvést s tagu.
Ještě ohledně toho nahrazení středníků na čárky, to asi nejde nějak zjednodušit a nebo ten script upravit, aby to rozdělovalo ne na základě tedy čárek, ale středníků? Pokud by to vše fungovalo, bylo by to nejideálnější, i z toho pohledu, že i laik by pouze přehrál excel a načetlo by to potřebná data, bez nutnosti cokoliv v souboru nahrazovat :-) |
||
Kajman Profil |
#6 · Zasláno: 17. 3. 2017, 13:06:46
gurgen:
„script upravit, aby to rozdělovalo ne na základě tedy čárek, ale středníků?“ Zkuste v té knihovně var data = $.csv.toArrays(result); var data = $.csv.toArrays(result,{separator:options.delimiter}); A následně ten středník nastavit při volání, např. $(obj).jexcel({ csv:'http://example.com/demo.csv', ..., delimiter: ';' }); |
||
gurgen Profil |
#7 · Zasláno: 17. 3. 2017, 17:36:09
Kajman:
díky, úprava pomohla, nyní ještě prosím poslední věc ta kódování sysel: zkouším utf, iso, windows, ale nic mi z toho nepomáhá :-( |
||
Kajman Profil |
#8 · Zasláno: 17. 3. 2017, 18:14:13
Nepomůže, když server, na kterém je csv soubor, bude v http hlavičce uvádĕt jeho kódování?
|
||
gurgen Profil |
#9 · Zasláno: 17. 3. 2017, 19:00:42
Kajman:
jak je to myšleno? zatím to vše testuju na local |
||
Kajman Profil |
#10 · Zasláno: 18. 3. 2017, 12:54:02
Když si cvs otevřete přímo v prohlížeči, tak by tam mělo být kódování korektně. Tohle zkuste vyřešit.
K tomu, aby prohlížeč věděl, v jakém kódování je ten text, může poslat server (třeba i apache na localhostu) informace v http hlavičce. Pokud je soubor v cp1250, tak nastavte server tak, aby pro csv přidával http hlavičku Content-Type: text/csv; charset=windows-1250 |
||
Časová prodleva: 4 dny
|
|||
gurgen Profil |
#11 · Zasláno: 22. 3. 2017, 04:17:56
Kajman:
bohužel stále tomu nerozumím a nefunguje mi to obsah stránky je následující, pořád se vypisují otazníky ve čtverci <html> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/0.71/jquery.csv-0.71.min.js"></script> <script src="js/jquery.jexcel.js"></script> <link rel="stylesheet" href="css/jquery.jexcel.css" type="text/css" /> <div id="my"></div> <script> $('#my').jexcel({ csv:'source/demo.csv', csvHeaders:true, colWidths: [70, 200, 70], delimiter: ';' }); </script> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </html> |
||
Kajman Profil |
#12 · Zasláno: 22. 3. 2017, 08:42:48
Tipuji, že máte v prohlížeči např. takovouto url
ht>tp://localhost/testcsv.html Otevřete si v prohlížeči vývojářské nástroje (typicky klávesou F12), otevřete si záložkou se síťovými požadavky. Url v prohlížeči změňte na něco takového ht>tp://localhost/source/demo.csv Je tam diakritika v pořádku? Jaké http hlavičky odpovědi jsou uvedené ve vývojářských nástrojích? Můžete někde zpřístupnit demo.csv? |
||
gurgen Profil |
#13 · Zasláno: 23. 3. 2017, 05:11:55
Kajman:
nerozumím tomu, na co se ptáte a ani kde tu diakritiku hledat. Testuju na následujícím souboru: https://ulozto .cz/!2cn2yI5X51mg/demo-csv
|
||
Kajman Profil |
#14 · Zasláno: 23. 3. 2017, 09:15:43
Ten soubor je v kódování windows-1250 (někdy označované jako cp1250). Nevím, co máte na locale a na hostingu za http server. Pokud je to apache a je povolená úprava jeho konfigurace přes .htaccess, tak si do něj přijete řádek.
AddCharset windows-1250 .csv Pokud si to jen u sebe otevíráte v prohlížeči bez použití http serveru a v adresním řádku máte file:///, tak tam http hlavičky nedostanete. |
||
gurgen Profil |
Kajman:
uf, tak já fakt nevím, o čem mluvíte. Testuju vše na localu, v adresním řádku mám http://localhost/excel/excel.html
do složky excel jsem přidal soubor .htaccess s Vámi uvedeným obsahem kodování, ale stále beze změny Takže něco pořád dělám špatně :( |
||
Kajman Profil |
#16 · Zasláno: 24. 3. 2017, 08:26:01
Pokud do .htaccess dáte řádky
Order deny,allow Deny from all Pokud máte apache, tak si v jeho instalaci najděte konfigurační soubor (zpravidla httpd.conf) a změňte nastavení AllowOverride na All pro Váš DocumentRoot. ... DocumentRoot "C:\cesta\k\adresari\ve\kterem\je\adresar\excel" ... <Directory "C:\cesta\k\adresari\ve\kterem\je\adresar\excel"> ... AllowOverride All ... </Directory> |
||
Časová prodleva: 8 let
|
0