2012-02-03 103 views
0

PHP for master在這裏我有一個小問題,捕獲圖像數據從php adn html數據庫輸入到excel。從數據庫mysql插入文件圖像到excel

這裏我用一個表作爲其媒體的html:

<?php 
header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=tes.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
?> 
<table> 
<tr> 
<td> Name </ td> 
<td> Address </ td> 
<td> <img src='foto_saya.jpg' width='100px' height='100px'>> </ td> 
</ tr> 
</ table> 

我想問的是在Excel foto_saya圖像尺寸的輸出列是100x100的 但出來diexcel圖像文件的原始大小, 然後我已經使用style = "width: 100px; height: 100px" 仍然不影響任何東西, 也許有人可以幫助我解決這個問題。 謝謝。

+0

我不wuite understant問題 – Mike 2012-02-03 07:55:49

+0

請再次檢查我的問題我修好了。 – ukung 2012-02-03 08:05:07

+0

你意識到你並沒有真正寫出一個Excel文件...你正在編寫一個擴展名爲.xls的HTML文件.... PHP不會自動將HTML標記轉換爲一個真正的Excel文件。雖然MS Excel在加載該文件時非常寬容,但並不完美。不要試圖用這種方法強制正確性。爲什麼不考慮寫一個真正的Excel文件呢? – 2012-02-04 11:02:53

回答

0

您無法使用style屬性配置要在Excel中顯示的圖像的大小。

如果您希望圖像在不使用樣式規則的情況下顯示特定大小,則需要使用GD圖像庫調整大小。

這將是這個樣子:

<?php 
// The file 
$filename = 'test.png'; 

// Content type 
header('Content-Type: image/jpeg'); 

// Get new dimensions 
list($width, $height) = getimagesize($filename); 
$new_width = 100; // pixels 
$new_height = 100; // pixels 

// Resample 
$image_p = imagecreatetruecolor($new_width, $new_height); 
$image = imagecreatefrompng($filename); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

// Output 
imagepng($image_p, 'test-resized.png'); 
?> 

那麼你將要使用調整後的圖像爲HTML代碼:

<table> 
<tr> 
<td> Name </ td> 
<td> Address </ td> 
<td> <img src='test-resized.png' width='100px' height='100px'>> </ td> 
</ tr> 
</ table>