office documenten lezen dmv php
Beste,
Wat ik graag zou willen, is de mogelijkheid om een office document uit te lezen via php. Een pdf uitlezen kan ik al, dat is geen moeite. Maar ik moet .doc, .docx edg kunnen uitlezen, en de opmaak behouden. Met google vond ik iets voor excel, maar dat geeft deze sexy output:
= no good.
Dus ik hoop, dat iemand dat al eens geprobeerd heeft, en een oplossing heeft.
Kort samengevat wil ik dus een class oid, des noods een methode, dan bouw ik het zelf wel, waarmee ik een office document *.doc, .docx, .xls, .xlsx, overige mogen ook nog. altijd mooi meegenomen* kan uitlezen, hun opmaak kan behouden, zodat ik dit weg kan schrijven in een pdf.
Alvast bedankt :)
Wat ik graag zou willen, is de mogelijkheid om een office document uit te lezen via php. Een pdf uitlezen kan ik al, dat is geen moeite. Maar ik moet .doc, .docx edg kunnen uitlezen, en de opmaak behouden. Met google vond ik iets voor excel, maar dat geeft deze sexy output:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
Rare (sjældne) "Stamps (切手) & Letters" for sale
No Item Price (€)
10001 1851 Denmark. 4 Rigsbankskilling Ferslew printing, plate I with with numeral "1" Copenhagen. 300
10002 1855 Denmark. Copenhagen foot-post cover franked with single Thiele 2 Rigsbankskilling type 5, plate I pos. 19. Nicely tied by numeral 1. Meget sjælden. 3500
10003 1852 Denmark. Thiele 2 Rigsbankskilling type 2 disjoined foot in pair, plate I type 10 & 2, pos. 48-58 with black numeral 1 cancellation. Clearly visible disjoined foot in pair with huge margins. 5800
10004 1871 Japan. 200 mon dragon cover. Sent from Yokohama (横浜) to Tokyo (æ±äº¬). 4300
No Item Price (€)
10001 1851 Denmark. 4 Rigsbankskilling Ferslew printing, plate I with with numeral "1" Copenhagen. 300
10002 1855 Denmark. Copenhagen foot-post cover franked with single Thiele 2 Rigsbankskilling type 5, plate I pos. 19. Nicely tied by numeral 1. Meget sjælden. 3500
10003 1852 Denmark. Thiele 2 Rigsbankskilling type 2 disjoined foot in pair, plate I type 10 & 2, pos. 48-58 with black numeral 1 cancellation. Clearly visible disjoined foot in pair with huge margins. 5800
10004 1871 Japan. 200 mon dragon cover. Sent from Yokohama (横浜) to Tokyo (æ±äº¬). 4300
= no good.
Dus ik hoop, dat iemand dat al eens geprobeerd heeft, en een oplossing heeft.
Kort samengevat wil ik dus een class oid, des noods een methode, dan bouw ik het zelf wel, waarmee ik een office document *.doc, .docx, .xls, .xlsx, overige mogen ook nog. altijd mooi meegenomen* kan uitlezen, hun opmaak kan behouden, zodat ik dit weg kan schrijven in een pdf.
Alvast bedankt :)
Gesponsorde koppelingen:
zijn daar misschien Microsoft plugins of API's voor ? Het zal toch niet zo zijn dat je het wiel moet uitvinden.....
Op het werk hier hier hebben we een web-based docemnt systeem (van OpenText) en daarin worden onze xls en doc(x) bewaard en die openen netjes in een browser...
Op het werk hier hier hebben we een web-based docemnt systeem (van OpenText) en daarin worden onze xls en doc(x) bewaard en die openen netjes in een browser...
Edit:
waarbij binnen het browser-scherm/window gewoon excel of wordt wordt gestart net zoals je regelmatig ziet bij pdf's
Gewijzigd op 01/01/1970 01:00:00 door John D
Ik heb van alles gevonden maar, ik moet wat hebben voor een linux server, en gewoon een script. Ik kan namelijk niet bij het systeem, is gewoon reseller hosting.
doc(x): livedocx
xls(x): http://www.codeplex.com/PHPExcel
xls(x): http://www.codeplex.com/PHPExcel
Die livedocx moet ik voor betalen. dat is niet echt de bedoeling... en die phpexcel, geeft deze output: http://www.vandenacker.be/pdftest/Tests/01simple.php
code:
het neemt ook de layout niet mee.
code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
error_reporting(E_ALL);
/** PHPExcel */
require_once '../Classes/PHPExcel.php';
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("templates/26template.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "\n";
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // This loops all cells,
// even if it is not set.
// By default, only cells
// that are set will be
// iterated.
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
error_reporting(E_ALL);
/** PHPExcel */
require_once '../Classes/PHPExcel.php';
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("templates/26template.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "\n";
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // This loops all cells,
// even if it is not set.
// By default, only cells
// that are set will be
// iterated.
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
het neemt ook de layout niet mee.
Hmm, misschien moet je dan even naar de document encodig oid kijken. Al bij hun support pagina gekeken?
En ik bedoelde eigenlijk phpLiveDocx. Die zit sowieso in het zend framework, daar kan je het evt ook uit halen.
EDIT: Haha, heb je zelf al een keer in de template gekeken? Met japanse tekens e.d. wordt het niet veel makkeijker xD. Alles gaat goed, behalve die paar vreemde tekens (en daar staat mss wel iets over in hun documentatie)
En ik bedoelde eigenlijk phpLiveDocx. Die zit sowieso in het zend framework, daar kan je het evt ook uit halen.
EDIT: Haha, heb je zelf al een keer in de template gekeken? Met japanse tekens e.d. wordt het niet veel makkeijker xD. Alles gaat goed, behalve die paar vreemde tekens (en daar staat mss wel iets over in hun documentatie)
Gewijzigd op 01/01/1970 01:00:00 door Pim -
oke... heb je een voorbeeldje voor me, hoe het werkt oid? dat ik er iig mee kan werken? wss dat het handig is voor je om te weten wat ik wil bereiken...
ik wil een zooitje word documenten, excel sheets, en pdf's, samen voegen in 1 pdf.
ik wil een zooitje word documenten, excel sheets, en pdf's, samen voegen in 1 pdf.
Je kan beter het Zend Framework gebruiken voor phpLiveDocx, gewoon beginnen bij de specifieke files ervan, en dan de rest die niet wordt geïncluded verwijderen.
ik heb nog nooit gewerkt met zend. ik heb het gedownload maar ik weet niet wat het doet, hoe het werkt, en wat ik moet doen.
Het is een framework, bestaande uit heel veel classes om je leven makkelijker te maken. Je kan het gebruiken als basis voor hele goede (MVC (google!)) sites, maar je kan er ook gewoon bepaalde componenten voor bepaalde classes gebruiken.
Oh.. wacht even, ik ben eigenlijk toch bang dat dit gewoon een laagje voor diezelfde betaalde livedocx is...
Misschien is deze wel wat: http://www.phpdocx.com
Oh.. wacht even, ik ben eigenlijk toch bang dat dit gewoon een laagje voor diezelfde betaalde livedocx is...
Misschien is deze wel wat: http://www.phpdocx.com
Daar zal ik eens naar kijken. Ik heb nu iets waarmee ik alle sheets, en alle inhoud kan tonen. berekeningen al gedaan... het enige probleem is, de opmaak, ik krijg de opmaak niet terug, en voor zover ik kan zien *alles gelezen* kan dat niet met deze class. *ik heb het nu weer over excel dus :P*. Dus ik moet iets hebben dat ook de opmaak mee stuurt.
Iemand?
Hmm PHPExcel geeft wel functies om de opmaak te verkrijgen (documentatie p16). Je zou dus best deze allemaal kunnen iteraten en omzetten naar html om zo het hetzelfde eruit te laten zien.
Even met var_dump(get_class_methods($objPHPExcel->getActiveSheet()->getStyle('D1'))) kijken wat er mogelijk is.
EDIT: Ik neem aan dat je nu de directe naar HTML functie gebruikt, dat kan dus niet meer, nu moet je zelf cellen iteraten en een tabel maken.
Even met var_dump(get_class_methods($objPHPExcel->getActiveSheet()->getStyle('D1'))) kijken wat er mogelijk is.
EDIT: Ik neem aan dat je nu de directe naar HTML functie gebruikt, dat kan dus niet meer, nu moet je zelf cellen iteraten en een tabel maken.
Gewijzigd op 01/01/1970 01:00:00 door Pim -
Dat snap ik. Ik heb hem nu, dat hij word omgezet naar pdf, met style. Dit kan ik wel bij elkaar gooien, dus is net zo goed.. Maar ik ga jou stukje wel gebruiken.
Nu moet ik nog wat hebben voor word.
Nu moet ik nog wat hebben voor word.
Excel deed raar maar heb k opgelost. Kan iemand mij nog op weg helpen voor word? want ik kan niks vinden voor word. Ik zou word graag in een pdf proppen, of met styles en al uitlezen
edit:
sorry bump. mijn fout
edit:
sorry bump. mijn fout
Gewijzigd op 01/01/1970 01:00:00 door wesley Overdijk
Nu mag ik wel bumpen. Iemand? Ik wil word nog kunnen uitlezen met opmaak en al. Of omzetten naar pdf, dat mag ook.
Werkt phpdocx, die ik hierboven al heb genoemd, niet voor docx?
EDIT: Of om het helemaal leuk te maken: hier de specificaties: http://www.wotsit.org/list.asp?fc=10 en dan zelf wat knutselen. Daar ben je nog wel een jaartje mee bezig ;)
EDIT: Of om het helemaal leuk te maken: hier de specificaties: http://www.wotsit.org/list.asp?fc=10 en dan zelf wat knutselen. Daar ben je nog wel een jaartje mee bezig ;)
Gewijzigd op 01/01/1970 01:00:00 door Pim -
docx is een betaalde service. ik zoek gewoon een script die ik kan gebruiken.
COM is voor windows.
Een goede oplossing heb ik niet voor je. Met een omweg zou je misschien wel gebruik kunnen maken van de Google Docs API. Ik weet dat je daar Office-bestanden kunt uploaden en weer verder kunt bewerken. (Google Docs werkt met HTML, dus ergens wordt die conversie gemaakt.)
Verder is het misschien leuk als je je gevonden oplossingen (zowel voor Excel als Word) hier als scripts post, ik denk dat anderen daar zeker wat aan kunnen hebben.
Verder is het misschien leuk als je je gevonden oplossingen (zowel voor Excel als Word) hier als scripts post, ik denk dat anderen daar zeker wat aan kunnen hebben.



