2013-04-30 46 views
5

Tôi đã có trình đọc Excel của mình để làm việc nhưng có một vấn đề gây phiền nhiễu mà tôi chỉ có thể tìm thông tin về cách áp dụng một biên giới cho một phạm vi ô, đó là vô ích cho ứng dụng của tôi.Làm thế nào để áp dụng biên giới cho tất cả các ô, không phải là phạm vi !

Người dùng tải lên các trang tính Excel có thể xem sau này. Vì vậy, phương pháp phạm vi ô sẽ không hoạt động vì phạm vi thay đổi.

Không có thông số mặc định để đặt tất cả các kiểu ô, v.v ...?

Dưới đây là những gì tôi có:

require_once ROOT . '/libs/PHPExcel/IOFactory.php'; 
     $excel = PHPExcel_IOFactory::load('../public_html/uploads/' . $filename); 
     PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT); 
     $writer = PHPExcel_IOFactory::createWriter($excel, 'HTML'); 

     $writer->setUseInlineCSS(true); 
     $styleArray = array(
      'borders' => array(
       'allborders' => array(
        'style' => PHPExcel_Style_Border::BORDER_THIN 
      ) 
     ) 
    ); 

     $excel->getActiveSheet()->getStyle('A1:B1')->applyFromArray($styleArray); 
     unset($styleArray); 
     $writer->save('uploads/excel-sheet.html'); 
     header('Location: ' . WROOT . 'uploads/excel-sheet.html'); 
+0

Tôi không làm việc với php nhưng suy nghĩ logic tại sao tất cả các ô ? Bạn sẽ làm cho bảng tính của bạn rất nặng. Php có bất kỳ phương pháp để tìm các tế bào cuối cùng trong phạm vi dữ liệu của bạn? Nếu có thì bạn có thể xác định phạm vi của bạn và sau đó áp dụng đường viền cho phạm vi đó? –

Trả lời

24

Đặt một phong cách mặc định sẽ áp dụng cho toàn bộ bảng tính

$excel->getDefaultStyle()->applyFromArray($styleArray); 

Mặc dù bạn sẽ có thể đọc phạm vi cho bất kỳ bảng tính đã được được tải và do đó, đặt kiểu cho phạm vi đó

$excel->getActiveSheet()->getStyle(
    'A1:' . 
    $excel->getActiveSheet()->getHighestColumn() . 
    $excel->getActiveSheet()->getHighestRow() 
)->applyFromArray($styleArray); 
+0

Cảm ơn, đã làm việc cho hầu hết các tế bào nhưng có một số không có viền được áp dụng. Có ai biết vì sao lại thế này không? – imperium2335

+0

Nó gợi ý rằng những ô này được định dạng rõ ràng thành border = none. Các kiểu ô riêng lẻ ghi đè kiểu dải ô, lần lượt ghi đè kiểu mặc định –

+0

+ 1 Vì vậy, tôi đã đúng :) Có một phương pháp để tìm ô cuối cùng có dữ liệu ... –

Các vấn đề liên quan