in reply to Re^3: Spreadsheet::ParseXLSX filename non Latin Tk getOpenFile
in thread Spreadsheet::ParseXLSX filename non Latin Tk getOpenFile
Thank you for your idea. It works!?! Even for the path the module does not return a shortpath! How is this possible? I updated the script. It first tries to open it with the filehandle (on my test system it seems to work fine), it then tries to open it passing the shortpath. When no shortpath is returned by the module, the opration fails.
use strict; use warnings; use Tk; use Win32::LongPath; use Spreadsheet::ParseXLSX; my $mw = Tk::MainWindow->new(); my $path; my $button = $mw->Button( -text => "Select a file", -command => \&show_file_dialog, )->pack(-side => 'left',); my $label = $mw->Entry( -text => 'No file yet', -width => 100, )->pack(-side => 'left',); $mw->MainLoop(); sub show_file_dialog { my @ext = ( ["Excel", ['xlsx']], ["All files", ['*']], ); $path = $mw->getOpenFile( -filetypes => \@ext, ); my $ShortPath = shortpathL ($path); $label->configure(-text => "$path - $ShortPath"); print "Trying to open file with Win32::LongPath::openL ... "; my $fh; Win32::LongPath::openL (\$fh, '<', $path) or die "Unable to open $path"; my $parser = Spreadsheet::ParseXLSX->new(); my $workbook = $parser->parse($fh); print "OK\n"; print "Trying to open file with shortpathL path ... "; my $parser = Spreadsheet::ParseXLSX->new(); my $workbook = $parser->parse($ShortPath); print "OK\n"; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^5: Spreadsheet::ParseXLSX filename non Latin Tk getOpenFile
by swl (Parson) on Nov 21, 2018 at 20:58 UTC |
In Section
Seekers of Perl Wisdom