phpExcel中的自定义单元格格式或掩码(GPS坐标)?

phpExcel中的自定义单元格格式或掩码(GPS坐标)?,gps,format,phpexcel,masking,Gps,Format,Phpexcel,Masking,我试图找出如何使用自定义单元格格式或创建输入掩码,以便用户可以输入数据(32°12'13.44“、32°12'13.4”或32°12'13”),而不允许使用其他格式,这是为了避免错误,因为处理信息的应用程序需要符号(°,“”)区分GPS坐标的每一位 我读过并尝试过: #NumberFormat.php const FORMAT_GPS = '##°##\'##.##\"'; 控制器: $phpExcelObject->setActiveSh

我试图找出如何使用自定义单元格格式或创建输入掩码,以便用户可以输入数据(32°12'13.44“、32°12'13.4”或32°12'13”),而不允许使用其他格式,这是为了避免错误,因为处理信息的应用程序需要符号(°,“”)区分GPS坐标的每一位

我读过并尝试过:

#NumberFormat.php
const FORMAT_GPS                        = '##°##\'##.##\"';
控制器:

 $phpExcelObject->setActiveSheetIndex(0)
                    ->setCellValue('A1', '32° 12\' 13.44"')
                    ->setCellValue('B1', '32° 12\' 13.4"')
                    ->setCellValue('C1', '32° 12\' 13"');
            $phpExcelObject->getActiveSheet()->getStyle('A1:C2')->getNumberFormat()->applyFromArray(
                    array(
                        'code' => \PHPExcel_Style_NumberFormat::FORMAT_GPS
                    )
            );
注意:我不认为这是正确的

但是,尽管它在单击“格式单元格”时显示格式,但当用户输入与格式不匹配的值时,它不会执行任何操作


我怎样才能做到这一点?有可能吗?

在MS Excel中,我可以使用如下掩码:

##0"°"00"'"00\"
也许像

$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Masked')
    ->setCellValue('B1', 'Degrees')
    ->setCellValue('C1', 'Minutes')
    ->setCellValue('D1', 'Seconds')
    ->setCellValue('E1', 'Decimal');
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A2', 532128.8864)
    ->setCellValue('B2', '=FLOOR(A2/10000,SIGN(A2))')
    ->setCellValue('C2', '=MOD(FLOOR(ABS(A2)/100,1),100)')
    ->setCellValue('D2', '=MOD(ABS(A2),100)')
    ->setCellValue('E2', '=(ABS(B2)+C2/60+D2/3600)*SIGN(A2)')
    ->setCellValue('F2', 'Latitude');
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A3', -21625.3338)
    ->setCellValue('B3', '=FLOOR(A3/10000,SIGN(A3))')
    ->setCellValue('C3', '=MOD(FLOOR(ABS(A3)/100,1),100)')
    ->setCellValue('D3', '=MOD(ABS(A3),100)')
    ->setCellValue('E3', '=(ABS(B3)+C3/60+D3/3600)*SIGN(A3)')
    ->setCellValue('F3', 'Longitude');
$objPHPExcel->getActiveSheet()
    ->getStyle('A2:A3')
    ->getNumberFormat()
    ->setFormatCode('##0"°"00"\'"00\"');

(在曼彻斯特机场等待时进行了测试)

试着找出您需要在MS Excel First中使用的面具。非常感谢您的帮助。