如題,php導(dǎo)出excel如何處理使得表格數(shù)字值前面的0不被去掉
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
我不會PHP,通Excel,只要0前加一小撇“'”(數(shù)字狀態(tài)下的)就歐了。 也就是說:用簡單的方法,Excel中的數(shù)字轉(zhuǎn)文本就是加“'”,明白?!
CellStyle csnumber = wb.createCellStyle();
csnumber.setDataFormat(df.getFormat("#,##0.00"));
cellValue = rs.getObject(xxxxx).toString();
c.setCellStyle(csnumber); // 格式
c.setCellValue(cellValue);
沒嘗試過用 PHP 導(dǎo)出 Excel ,也許你可以嘗試把帶前置 0 的數(shù)字值轉(zhuǎn)換成字符串交給 excel
excel 總是會把數(shù)字的前置 0 去掉,但要是第一個字符是 0 的字符串,就沒有這個問題了
用 PHPExcel 的話,賦值時使用 PHPExcelCellDataType::TYPE_STRING 參數(shù)
$objActSheet->setCellValueExplicit($key, $value, PHPExcel_Cell_DataType::TYPE_STRING);
“首先,我們了解一下excel從web頁面上導(dǎo)出的原理。當(dāng)我們把這些數(shù)據(jù)發(fā)送到客戶端時,我們想讓客戶端程序(瀏覽器)以excel的格式讀取它,所以把mime類型設(shè)為:application/vnd.ms-excel,當(dāng)excel讀取文件時會以每個cell的格式呈現(xiàn)數(shù)據(jù),如果cell沒有規(guī)定的格式,則excel會以默認(rèn)的格式去呈現(xiàn)該cell的數(shù)據(jù)。這樣就給我們提供了自定義數(shù)據(jù)格式的空間,當(dāng)然我們必須使用excel支持的格式。下面就列出常用的一些格式:
1) 文本:vnd.ms-excel.numberformat:@
2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
3) 數(shù)字:vnd.ms-excel.numberformat:#,##0.00
4) 貨幣:vnd.ms-excel.numberformat:¥#,##0.00
5) 百分比:vnd.ms-excel.numberformat: #0.00%
這些格式你也可以自定義,比如年月你可以定義為:yy-mm等等。那么知道了這些格式,怎么去把這些格式添加到cell中呢?很簡單,我們只需要把樣式添加到對應(yīng)的標(biāo)簽對(即閉合標(biāo)簽)即可。如
<td style="vnd.ms-excel.numberformat:@">410522198402161833</td>