수식 입력 줄에 Excel 셀 값을 "1/1/1901"로 표시하고 perl을 사용하여 해당 셀에 "1901-01-01"과 동일하게 표시하는 방법

샨 무감

Excel 파일을 생성해야하며 셀 값은 수식 입력 줄에 mm / dd / yyyy 형식 (1/1/1901)으로 표시되어야하며 yyyy-mm-dd 형식 (1901-01-01)과 동일하게 표시되어야합니다. )를 해당 셀에 추가합니다. Perl을 사용하여이 작업을 수행하는 방법을 도와 주시겠습니까? 아래 스크린 샷을 참조하십시오.

Excel :: Writer :: XLSX 모듈을 사용하고 있으며 아래 코드를 시도했지만 수식 입력 줄과 셀에 동일한 형식이 표시됩니다.

        if ($cell =~ qr[^(\d{4})/(\d{1,2})/(\d{1,2})$])
        {
        my $format1 = $workbook->add_format(num_format => 'yyyy-mm-dd');
        my $date = sprintf "%02d/%02d/%04d", $2, $3, $1;
        $worksheet->write_date_time( $iR, $iC, ${date}, $format1);
        }

스크린 샷

jm666

문서에서 :

가장 직접적인 방법은 날짜를 ISO8601 yyyy-mm-ddThh : mm : ss.sss 날짜 형식으로 변환하고 write_date_time () 워크 시트 메서드를 사용하는 것입니다.

데모 :

use strict;
use warnings;

use Excel::Writer::XLSX;

my $wb = Excel::Writer::XLSX->new( 'perl.xlsx' );
my $ws = $wb->add_worksheet();

$ws->set_column('A:B', 25);

my $date_format = $wb->add_format(num_format => 'yyyy-mm-dd');

my($d,$m,$y) = (20,1,1901);

#your current
my $current = sprintf "%02d/%02d/%04d", $d,$m,$y;
$ws->write('A1', 'using: %02d/%02d/%04d');
$ws->write_date_time( 'B1', $current, $date_format );

#you want
my $wanted = sprintf "%04d-%02d-%02dT", $y,$m,$d;
$ws->write('A2', 'using: %04d-%02d-%02dT');
$ws->write_date_time( 'B2', $wanted, $date_format );

엑셀로 생산하다

엑셀 스크린 샷

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관