2011-02-09 39 views
21

Với PHPExcel, tôi đang sử dụng:loại dữ liệu thiết lập phpexcel trên phạm vi ô

$workSheet->fromArray($array);

Để đặt dữ liệu của tôi. Tuy nhiên, một cột cần phải được đặt làm chuỗi (một số có số 0 đứng đầu, số 0 đầu sẽ bị cắt nếu không được đặt thành chuỗi). Nếu tôi không sử dụng phương pháp fromArray, tôi có thể đặt loại dữ liệu bằng cách sử dụng PHPExcel_Worksheet::setCellValueExplicit().

Tuy nhiên, tôi muốn thực hiện việc này bằng nhiều cột. Lý tưởng nhất là một cái gì đó như thế này:

$worksheet->getCell('A1:A50')->setDataType(PHPExcel_Cell_DataType::TYPE_STRING); 

Nhưng nhìn vào mã, getCell sẽ không cho phép phạm vi, chỉ một ô duy nhất. Tôi có thể làm cái này như thế nào?

Trả lời

12

Hiện không có phương thức nào trong PHPExcel cho phép bạn đặt loại dữ liệu cho một dải ô, chỉ cho một ô riêng lẻ.

Có một vài tùy chọn ... khó hơn là viết một giá trị ô giá trị tùy chỉnh tự động đặt kiểu dữ liệu cho các ô đó thành chuỗi khi giá trị ô được đặt bởi fromArray().

Những gì bạn có thể làm thay vì (và dễ dàng hơn nhiều), để loại dữ liệu dưới dạng số và giá trị là số, nhưng để đặt mặt nạ định dạng số cho Excel biết hiển thị số có số 0 đứng đầu.

$objPHPExcel->getActiveSheet()->getStyle('L3:N2048') 
           ->getNumberFormat()->setFormatCode('0000'); 
Các vấn đề liên quan