比較大條的一個(gè)類庫(kù),官方最新版已經(jīng)蹦到7.多M大了。找了個(gè)民間精簡(jiǎn)版1.多M的。
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
下面是這個(gè)PHP excel類庫(kù)
的一些使用方法要點(diǎn)備忘。來(lái)自互聯(lián)網(wǎng)。
官方網(wǎng)站:
//設(shè)置PHPExcel類庫(kù)的include path
set_include_path('.'. PATH_SEPARATOR .
'include path' . PATH_SEPARATOR .
get_include_path());
/**
* 如果使用 Excel5 ,輸出的內(nèi)容應(yīng)該是GBK編碼。
*/
require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
// 創(chuàng)建一個(gè)處理對(duì)象實(shí)例
$objExcel = new PHPExcel();
// 創(chuàng)建文件格式寫入對(duì)象實(shí)例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式
//$objWriter-setOffice2003Compatibility(true);
//*************************************
//設(shè)置文檔基本屬性
$objProps = $objExcel-getProperties();
$objProps-setCreator(“Zeal Li”);
$objProps-setLastModifiedBy(“Zeal Li”);
$objProps-setTitle(“Office XLS Test Document”);
$objProps-setSubject(“Office XLS Test Document, Demo”);
$objProps-setDescription(“Test document, generated by PHPExcel.”);
$objProps-setKeywords(“office excel PHPExcel”);
$objProps-setCategory(“Test”);
//*************************************
//設(shè)置當(dāng)前的sheet索引,用于后續(xù)的內(nèi)容操作。
//一般只有在使用多個(gè)sheet的時(shí)候才需要顯示調(diào)用。
//缺省情況下,PHPExcel會(huì)自動(dòng)創(chuàng)建第一個(gè)sheet被設(shè)置SheetIndex=0
$objExcel-setActiveSheetIndex(0);
$objActSheet = $objExcel-getActiveSheet();
//設(shè)置當(dāng)前活動(dòng)sheet的名稱
$objActSheet-setTitle(‘測(cè)試Sheet’);
//*************************************
//設(shè)置單元格內(nèi)容
//
//由PHPExcel根據(jù)傳入內(nèi)容自動(dòng)判斷單元格內(nèi)容類型
$objActSheet-setCellValue(‘A1′, ‘字符串內(nèi)容’); // 字符串內(nèi)容
$objActSheet-setCellValue(‘A2′, 26); // 數(shù)值
$objActSheet-setCellValue(‘A3′, true); // 布爾值
$objActSheet-setCellValue(‘A4′, ‘=SUM(A2:A2)’); // 公式
//顯式指定內(nèi)容類型
$objActSheet-setCellValueExplicit(‘A5′, ’847475847857487584′,
PHPExcel_Cell_DataType::TYPE_STRING);
//合并單元格
$objActSheet-mergeCells(‘B1:C22′);
//分離單元格
$objActSheet-unmergeCells(‘B1:C22′);
//*************************************
//設(shè)置單元格樣式
//
//設(shè)置寬度
$objActSheet-getColumnDimension(‘B’)-setAutoSize(true);
$objActSheet-getColumnDimension(‘A’)-setWidth(30);
$objStyleA5 = $objActSheet-getStyle(‘A5′);
//設(shè)置單元格內(nèi)容的數(shù)字格式。
//
//如果使用了 PHPExcel_Writer_Excel5 來(lái)生成內(nèi)容的話,
//這里需要注意,在 PHPExcel_Style_NumberFormat 類的 const 變量定義的
//各種自定義格式化方式中,其它類型都可以正常使用,但當(dāng)setFormatCode
//為 FORMAT_NUMBER 的時(shí)候,實(shí)際出來(lái)的效果被沒有把格式設(shè)置為”0″。需要
//修改 PHPExcel_Writer_Excel5_Format 類源代碼中的 getXf($style) 方法,
//在 if ($this-_BIFF_version == 0×0500) { (第363行附近)前面增加一
//行代碼:
//if($ifmt === ’0′) $ifmt = 1;
//
//設(shè)置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數(shù)字
//被使用科學(xué)記數(shù)方式顯示,配合下面的 setAutoSize 方法可以讓每一行的內(nèi)容
//都按原始內(nèi)容全部顯示出來(lái)。
$objStyleA5
-getNumberFormat()
-setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//設(shè)置字體
$objFontA5 = $objStyleA5-getFont();
$objFontA5-setName(‘Courier New’);
$objFontA5-setSize(10);
$objFontA5-setBold(true);
$objFontA5-setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5-getColor()-setARGB(‘FF999999′);
//設(shè)置對(duì)齊方式
$objAlignA5 = $objStyleA5-getAlignment();
$objAlignA5-setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5-setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//設(shè)置邊框
$objBorderA5 = $objStyleA5-getBorders();
$objBorderA5-getTop()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5-getTop()-getColor()-setARGB(‘FFFF0000′); // color
$objBorderA5-getBottom()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5-getLeft()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5-getRight()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//設(shè)置填充顏色
$objFillA5 = $objStyleA5-getFill();
$objFillA5-setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5-getStartColor()-setARGB(‘FFEEEEEE’);
//從指定的單元格復(fù)制樣式信息.
$objActSheet-duplicateStyle($objStyleA5, ‘B1:C22′);
//*************************************
//添加圖片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing-setName(‘ZealImg’);
$objDrawing-setDescription(‘Image inserted by Zeal’);
$objDrawing-setPath(‘./zeali.net.logo.gif’);
$objDrawing-setHeight(36);
$objDrawing-setCoordinates(‘C23′);
$objDrawing-setOffsetX(10);
$objDrawing-setRotation(15);
$objDrawing-getShadow()-setVisible(true);
$objDrawing-getShadow()-setDirection(36);
$objDrawing-setWorksheet($objActSheet);
//添加一個(gè)新的worksheet
$objExcel-createSheet();
$objExcel-getSheet(1)-setTitle(‘測(cè)試2′);
//保護(hù)單元格
$objExcel-getSheet(1)-getProtection()-setSheet(true);
$objExcel-getSheet(1)-protectCells(‘A1:C22′, ‘PHPExcel’);
//*************************************
//輸出內(nèi)容
//
$outputFileName = “output.xls”;
//到文件
////$objWriter-save($outputFileName);
//or
//到瀏覽器
////header(“Content-Type: application/force-download”);
////header(“Content-Type: application/octet-stream”);
////header(“Content-Type: application/download”);
////header(‘Content-Disposition:inline;filename=”‘.$outputFileName.’”‘);
////header(“Content-Transfer-Encoding: binary”);
////header(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
////header(“Last-Modified: ” . gmdate(“D, d M Y H:i:s”) . ” GMT”);
////header(“Cache-Control: must-revalidate, post-check=0, pre-check=0″);
////header(“Pragma: no-cache”);
////$objWriter-save(‘php://output’);
這個(gè)php的excel類庫(kù)
是目前見到功能最好的。
以上引用自:
你用這個(gè),瀏覽器就會(huì)提示下載了(chrome默認(rèn)是保存在 我的文檔/Downloads里,不會(huì)提示下載,不知算不算?^_^)
用個(gè)編程工具就可以啦
用Delphi建個(gè)工程,再接上數(shù)據(jù)庫(kù),再與用Excel做個(gè)連接,
從數(shù)據(jù)庫(kù)中讀取記錄,再用下載控件將圖片下載到本地,最后把圖片寫入Excel
思路是這樣,具體操作要看自已的了
因?yàn)閳D片并不是存放在單元格內(nèi),并不像其它數(shù)據(jù)是存放在單元格內(nèi)的,是一條一條的記錄,雖然你看到圖是在單元格中的,其實(shí)它是浮于文字上方的,是可以移動(dòng)的,因此你用ADO或其它工具讀數(shù)據(jù)時(shí),是沒有圖片信息的,只能用EXCEL對(duì)象來(lái)讀取