bir hücre yazmak bu her zaman yapmayın ... Bu gereksiz bir havai bu. Her sütun için sadece bir kez yapın.
Uyarı, tasarruf sırasında hala pahalıdır, çünkü PHPExcel, o hücrenin içeriğine göre gerekli genişliği çalıştıran, bu hesaplamanın formülünü ve biçimlendirmesini göz önünde bulundurarak ve maksimum boyutu kullanarak, o sütundaki her hücreyi gezer. Bu sütundaki herhangi bir hücre. Hatta daha sonra mükemmel bir çözüm değildir: varsayılan davranış gösterilecek karakter sayısını sayma ve yazı dayalı bir jenerik çarpanı (Arial, Calibri ait Verdana) ve dolgu biraz kullanarak, tahmin etmektir. daha doğru bir hesaplaması için, hesaplama için kullanılan yöntemi değiştirebilir ve kodu daha sonra bir ttf sınırlayıcı kutusu oluşturmak ve bu kutunun boyutları hücre boyutu temel için GD kullanır. Bu daha doğru bir hesaplama, ama çok daha yavaş. $ Yöntemi aşağıdakilerden biri olduğu, kaydetmeden önce
PHPExcel_Shared_Font::setAutoSizeMethod($method);
:
kullanarak hesaplama yöntemini değiştirebilir
PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX
PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT
Bu hala mükemmel bir çözüm değildir, ama bu PHPExcel'in yapabileceği en iyi hesaplama.
Bir alternatif, kaydetmeden önce çalışma sayfasının hesaplamak için CalculateColumnWidths() yöntemini doğrudan kendiniz çağırmanız ... ve daha sonra, kaydetmeden önce sütunun tamamının sığmaya çalıştığından emin olmak için değeri her 5 saniyede artırarak her bir sütunun boyutu boyunca yürümektir.