Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

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.


Comment on Re: spreadsheet XLSX
Select or Download Code
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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (19)
As of 2014-08-29 16:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (282 votes), past polls