Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skriva och läsa värden i excel med php

Postades av 2013-01-13 13:47:33 - Lars Lantz, i forum php, Tråden har 5 Kommentarer och lästs av 2925 personer

Hej!

Som rubriken lyder:
Kan man på något vis skriva ett värde till excel med php där excel gör diverse beräkningar.
Och sedan då hämta resultatet med php.
Finns det kommandon för detta?

/Lars


Svara

Sv: Skriva och läsa värden i excel med php

Postades av 2013-01-21 19:06:20 - Henry Rune Tk

Jag skulle tipsa om:
http://phpexcel.codeplex.com/

Den stöder skrivning till en stor mängd excel:formater, samt kalkylering av formulärvärderingar.

Funktionslistan finns här:
http://phpexcel.codeplex.com/wikipage?title=Features&referringTitle=Home

För att utnyttja motoren så krävs:
* PHP version 5.2.0 eller högre
* PHP extension php_zip aktiverad ( *1 )
* PHP extension php_xml aktiverad
* PHP extension php_gd2 aktiverad

( *1 ) php_zip krävs enbart om du ska använda:
PHPExcel_Reader_Excel2007,
PHPExcel_Writer_Excel2007,
PHPExcel_Reader_OOCalc.
Eller kortfattat: bara om du behöver hantera .xlsx eller .ods-filer.



Svara

Sv:Skriva och läsa värden i excel med php

Postades av 2013-01-22 18:28:35 - Lars Lantz

Hej Henry och tack!

Jag hade redan hittat phpexcel men inte tänkt på att meddela mig här.
Jag har däremot redan stött på patrull. Kan du hjälpa mig med detta.

Scriptet går ut på att jag öppnar en befintlig excel-fil (ID151.xls). PHP skriver ett
tal i cell A1. Excel gör beräkning i B1 (=A1+C1). PHP läser resultatet i B1
och presenterar resultatet. Funkar perfekt.

Ett nytt tal skrivs i A1. Excel ska göra ny beräkning men det händer inte.
A1 presenteras med det nya värdet. B1 presenteras med den gamla beräkningen.

Vad gör jag för fel?

<?php

require 'Classes/PHPExcel/IOFactory.php';
$objPHPExcel = PHPExcel_IOFactory::load("excelfiler/ID151.xls");

$objPHPExcel->getActiveSheet()->setCellValue('A1', '100.57');
$val1 = $objPHPExcel->getActiveSheet()->getCell('A1')->getCalculatedValue();
$val2 = $objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue();
echo $val1.'&nbsp;&nbsp;&nbsp;'.$val2;

echo' <br><br><br>';

$objPHPExcel->getActiveSheet()->setCellValue('A1', '98.19');
$val1 = $objPHPExcel->getActiveSheet()->getCell('A1')->getCalculatedValue();
$val2 = $objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue();
echo $val1.'&nbsp;&nbsp;&nbsp;'.$val2;

?>


Svara

Sv: Skriva och läsa värden i excel med php

Postades av 2013-01-22 22:47:10 - Henry Rune Tk

Nu har jag inte .xls:filen så jag kan replikera felet, men jag skulle chansa på att det beror på cache:en.

PHPExcel levererar försöker att uppnå maximal prestanda genom att "cache:a" resultatet av beräkningsformulärer så fort de har kört en gång,
vilket kan vara förklaringen bakom att $val2 har samma värde som första beräkningen som gjordes.

Om du vill ändra underliggande datat (A1) bör cache:n tömmas innan du begär det beräknade värdet igen.

För att uppnå detta mål kan du använda följande metod (samtidigt som du -och jag- håller tummarna):

PHPExcel_Calculation::getInstance()->clearCalculationCache();


Alternativt den följande metoden:
PHPExcel_Calculation::flushInstance();


Du kan även ändra standardinställningen så att resultaten inte cachas alls.
(Kom ihåg att det kommer att drabba prestandan på PHPExcel, så kanske lösningen ovan duger)
För att göra detta, innan du skickar förfrågningar till beräkningsmotorn, använd:
PHPExcel_Calculation::getInstance()->setCalculationCacheEnabled(FALSE);


Alternativt:
PHPExcel_Calculation::getInstance()->disableCalculationCache();


Jag hoppas att jag har träffat rätt, men jag bollar gärna om problemet uppstår.


Svara

Sv:Skriva och läsa värden i excel med php

Postades av 2013-01-23 17:43:43 - Lars Lantz

Hej!

Båda metoderna fungerar, men jag måste ladda in Excelbladet igen. Spelar ingen roll i och för sig.
Vad är det för skillnad mellan de båda metoderna:

$objPHPExcel = PHPExcel_Calculation::getInstance()->clearCalculationCache();

och
$objPHPExcel = PHPExcel_Calculation::flushInstance();


Appropå Excelbladet:
A1: Värde in
B1: =A1+C1
C1: -0,13

Det är inget annat än ett exempelblad att öva mig på. :)

/Lars


Svara

Sv: Skriva och läsa värden i excel med php

Postades av 2013-01-23 18:22:10 - Henry Rune Tk

De uppnår i stort sätt samma effekt, men enlight PHPExcel's förtydlighetsbristande dokumentation så:

$objPHPExcel = PHPExcel_Calculation::flushInstance();
- Spolar cachen för varje befintlig instans av klassen (fast enbart om beräkningsmotoren har initierats).

$objPHPExcel = PHPExcel_Calculation::getInstance()->clearCalculationCache();
- Spolar cachen


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 762
27 959
271 761
1 219
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies