Jump to content
php.lv forumi

eksports uz excel formātu


Grey_Wolf

Recommended Posts

   Padalieties pieredze par datu izvadīšanu excel formātā BEZ saglabāšanas servera pusē ..

Ir kaut kādas pavecas klases ( gadi etak 3 vecas - kas saprotams ir stipri par senu )

Nepieciešams: savāktos datus izsniegt userim kā excel failu - konvertējot UTF-8 uz standarta  windows latvisko kodējumu ( hmm no galvas neatceros laikam xxx 57 ) ...

Der arī Word formāts -  marazmātiski, bet ko lai dara ja meitenes citus formātus nepazīst ..

PDF šoreiz garām, jo dati jāliek atskaitēs ( tajā pašā Word ) ..

/ PDF vajadzēs kautkad nākotnē, bet nu tam jau helpu pilns internets /

šoreiz vairāk intresē pieredze, un kādi varētu būt zemūdens akmeņi ...

---

P.S. tas nav komerc projekts, jo pats no aktīvās komerc kodēšanas jau kādus 2 gadus prom ..

- kodēju tik savam priekam, un lai pašam būtu vieglāk savus darbus apdarīt ( Automātika, laikam ;) )

 

 

Link to comment
Share on other sites

Elementārākais variants ir norādīt headerus parastam HTML dokumentam:

$contents = '<table>
<tr>
<td>Row 1</td>
<td>Row 2</td>
</tr>
<tr>
<td>bLAH BLAH</Td>
<td>Blah Blah</td>
</tr>
</table>';

$filename = 'my_excel_file.xls';
header( 'Content-type: application/ms-excel' );
header( 'Content-Disposition: attachment; filename=' . $filename );

echo $contents;

Encoding uzstādi jau pats, kādu vēlies.

Otrs protams ir publiski pieejamais PHPExcel.

Vismaz man nekad nekas vairāk nav bijis nepieciešams.
Link to comment
Share on other sites

hmm nebiju iedomājies par šo, bet šoreiz laikam īsti nederēs, jo excel, jau grib datus noformatēt, kas nav vajadzīgs ( vajag excel formatējums TEXT ) ..
Bet pamēģināšu , ļoti iespējams ka derēs .. 
--
Man dati ir tādi ka excel Satndart formatējumā, tos uztver kā matemātsikas darbības, vai kā datumu   - līgumu numuri 
piedevām, kāds tas numura formāts būs nav zināms ( 10/2  vai 2001.02.03/3  etc .... )
---
edit:  
tā arī ir kā domāju :(
piedevām tiek uzdoti lieki jautjumi ..
Twisted: paldies par ideju, gan jau kautkur šis noderēs ..

 

Edit2: papētiju PHPExcel .. izskatās stipri monsterīgs ... iespēju daudz.. bet laikam būs jāpameklē kautkas vienkāršāks - jo realitātē, jau vajag tikai 2 lietas ..
salikt tabulā, kuru formatējums ir text .. viss.. 

Edited by Grey_Wolf
Link to comment
Share on other sites

Lūdzu, dari to uz XLSX.

 

Attiecīgi tad arī tas pasākums kļūst krietni nesāpīgāks.

tad vispār neņem .. faila formāts nekorekts un -> staigā tālāk ..

bet pat ja to pārvarētu (pamainot haiderus utt.. )

vienalga excel pie importa, noformatē  datus .. uz sev vien zināmiem formātiem , jau minēju vajag TEXT formatējumu, nevis GENERAL .. tur ir vis lielākā sāpe ( par to ka jānospiež poga YES gan pastāstītu - jo lietos jau tikai daži cilvēki .. bet to auto format - tas nu galīgi garām ..

--

Varbūt kāds var ieteikt citu formātu, uz ko tos datus aizsūtīt, galvenais lai var pēc tam ielikt  word ...

P.S.  CSV atkrīt tieši ar to ka : dati nav stingri tabulāri, importējot iekš Excel  notiek tas AUto Formating .. ( kaut Bila kantoris .. )

 

Link to comment
Share on other sites

 

Excel jau arī šādu .csv failu sagremo pareizi

1,1,1
2,2
3

man vajag datus, no datubāzes, sašķirotus atlasītus utt.. 

izvadīt kā excel failu ... kāds sakars ar CSV ??

--

Vispār izskatās ka daļa problēmas ir atrisināta diezgan vienkāršā veidā - atradu kā priekš EXCEL formatēt XML datus ..

tātad problēma ar to ka excel pats formatēs, atkrīt ..

paliek problēma ar haideri .. 

padodot datus XML formātā un uzliekot paplašinājumu xls (XLSX .. vispār neņem ), rodas pridinājums par to ka paplašinājums neatbilst saturam .. 

meklēšu .. ... atradīšu - iepostēšu pilno  risinājumu ...

Link to comment
Share on other sites

man vajag datus, no datubāzes, sašķirotus atlasītus utt.. 

izvadīt kā excel failu ... kāds sakars ar CSV ??

Ar CSV sakars tāds, ka no datubāzes vari saglabāt CSV failā un sūtīt ofisa dūdām. Parasti CSV failiem ir Excel ikona un ofisa dūda pat neredzēs atšķirību - tas ir XLS vai CSV fails.

Link to comment
Share on other sites

Šito esi provējis, kas tur darās?

 

Btw, ja ir problēmas ar CSV, tad joka pēc var paprovēt TSV. It kā atšķirības nekādas, taču nesen konstatējām gadījumu, kad ir. Konkrēti - ar encoding atpazīšanu.

nu nevajag man CSV ;)  .. 

Tā klasīte ko atsūtiji jau arī ģenerē XML  kodu ..   tas arī praktiski laikam vienīgais normālais risinājums ..   

- pirmā acu uzmetienā, pat viņu varētu izmantot, lai nerakstītu pats savu  ( padomāšu vai man vajadzēs vairāk datu tipus par par string) ..

 

rakņājoties pa tīklu atradu šo - kārtīgi pastudējot tur ar OFICE dokumentiem var darīt trakas lietas ...

 

Link to comment
Share on other sites

fināl risinājums - stipri vien samocīts ... ( "ar aliņu būs labi " )

<?php
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: application/x-msexcel");
header("Content-Disposition: attachment; filename=\"nosaukums.xls\";");
header("Content-Transfer-Encoding:­ binary");
?><?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
    <Styles>
        <Style ss:ID="bold">
            <Font ss:Bold="1"/>
        </Style>
    </Styles>
    <Worksheet ss:Name="nosaukums_shetam">
        <Table>
            <Row>
                <Cell ss:StyleID="bold"><Data ss:Type="String">02/12</Data></Cell>
                <Cell ss:StyleID="bold"><Data ss:Type="String">12.12.2013</Data></Cell>
                <Cell ss:StyleID="bold"><Data ss:Type="String">a</Data></Cell>
                <Cell ss:StyleID="bold"><Data ss:Type="String"> ģļāžčūņrūķīšē </Data></Cell>
                <Cell ss:StyleID="bold"><Data ss:Type="String"> ĢĻĀŽČŪŅRŪĶĪŠĒ </Data></Cell>
            </Row>
         </Table>
    </Worksheet>
</Workbook>

marrtins: Nu palika labāk ?? ( saprotu ka sestdienas rīts - grūti )

Edited by Grey_Wolf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...