Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: spreadsheet XLSX

by bart (Canon)
on Nov 15, 2013 at 12:06 UTC ( #1062732=note: print w/replies, xml ) Need Help??

in reply to spreadsheet XLSX

$t1 is a variable. If it doesn't contain the right id value, the regex won't work.

I'd rather do the following instead:

my %fmt = $member_styles -> contents =~ /\bnumFmtId="(\d+)"\s+formatCo +de="([^"]*)/g; my $formatCode = $fmt{$t1} || ''
and this also gives you a chance to inspect which format codes it does recognize.

Replies are listed 'Best First'.
Re^2: spreadsheet XLSX
by lpanokarren (Novice) on Nov 15, 2013 at 21:44 UTC

    thanks bart - I was able to determine that it is not working for format ids 43, 168 and 169 - and yes, I do recognize, that if 't1' does not resolve to a value in the data, regex extraction would fail - my question was mostly - why doesnt this seemingly correct regex -

    <numFmts count="7"> <numFmt numFmtId="43" formatCode="_(* #,##0.00_);_(* \(#,##0.00\);_(* +&quot;-&quot;??_);_(@_)"/> <numFmt numFmtId="164" formatCode="[$-409]h:mm\ AM/PM;@"/> <numFmt numFmtId="165" formatCode="m/d;@"/> <numFmt numFmtId="166" formatCode="ddd\ mm/dd/yy"/> <numFmt numFmtId="167" formatCode="0.0%"/> <numFmt numFmtId="168" formatCode="&quot;$&quot;#,##0.00"/> <numFmt numFmtId="169" formatCode="m/d/yy;@"/></numFmts>
    $member_styles -> contents =~ /numFmtId="$t1" formatCode="([^"]*)/; my $formatCode = $1 || '';
    I will give your regex a try and report back though - thanks again

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1062732]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (2)
As of 2023-02-01 03:49 GMT
Find Nodes?
    Voting Booth?

    No recent polls found