2013-08-29 12 views
5

मैं mysql से एक एक्सेल निर्यात है, जो एक स्तंभ 17 अंक (एक अनूठा, संख्यात्मक, संदर्भ) के मान रखने से डेटा को प्रदर्शित करना चाहिए। PHPExcel का उपयोग करते समय, यह संदर्भ सब कुछ ठीक दिखाता है।PHPExcel नंबर प्रदर्शित नहीं प्रारूप सही ढंग से

मैं प्रयोग किया है: $objPHPExcel->getActiveSheet()->getStyle('F'.$xlsRow)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); जो करीब आता है, लेकिन ...

जब डेटाबेस में और मूल डेटा एक्सेल शीट के मानों की तुलना, मैं संदर्भ के अंतिम 2 अंक देखना 00 की तैयारी में हैं ।

जैसे:

`20130829071002200` instead of `20130829071002210` 

मैं setFormatCode में अन्य (संख्यात्मक और गैर संख्यात्मक) स्वरूपों की स्थापना और की कोशिश की (PHPExcel_Style_NumberFormat ::), लेकिन का उपयोग करते समय मैं या तो ###### मिल STRING प्रारूप, वैज्ञानिक नोटेशन (2,01308 ई +16) कुछ भी या टेक्स्ट प्रारूप या ऊपर उल्लिखित आउटपुट का उपयोग करते समय (पिछले 2 अंक शून्य हैं)

कोई विचार नहीं कि मैं क्या गलत कर रहा हूं ...

किसी भी मदद की सराहना की जाएगी।

उत्तर

8

मैं क्योंकि आपके संख्या इतनी बड़ी है एक 32-बिट पूर्णांक मान के रूप में जमा किया जा रहा है कि सुझाव देंगे, तो यह परोक्ष (सभी इसी परिशुद्धता मुद्दों के साथ) नाव के रूप में स्थापित किया जा रहा है। यदि आप संख्यात्मक मूल्यों के साथ इस बड़े पैमाने पर काम कर रहे हैं, तो आपको वास्तव में उन्हें तारों के रूप में व्यवहार करने की आवश्यकता है। जब आप PHPExcel सेल में मान संग्रहीत करते हैं, तो स्ट्रिंग के प्रकार के साथ setCellValueExplicit() का उपयोग करें।

$objPHPExcel->getActiveSheet() 
    ->setCellValueExplicit(
     'A1', 
     '20130829071002210', 
     PHPExcel_Cell_DataType::TYPE_STRING 
    ); 
+0

यह निश्चित रूप से चयनित उत्तर होना चाहिए ... इच्छा है कि मैं इस दो घंटे पहले ठोकर खाई थी! –

+0

setCellValueExplicit सफलता की कुंजी है – Dummy

संबंधित मुद्दे