version 1.22, 2003/09/05 01:06:45
|
version 1.25, 2003/09/12 18:59:48
|
Line 48 Spreadsheet
|
Line 48 Spreadsheet
|
package Apache::Spreadsheet; |
package Apache::Spreadsheet; |
|
|
use strict; |
use strict; |
use warnings FATAL=>'all'; |
#use warnings FATAL=>'all'; |
no warnings 'uninitialized'; |
#no warnings 'uninitialized'; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
use Apache::lonnet; |
use Apache::lonnet; |
use Safe; |
use Safe; |
Line 231 sub initialize {
|
Line 231 sub initialize {
|
# the descendents of the spreadsheet class. |
# the descendents of the spreadsheet class. |
} |
} |
|
|
|
sub clear_package { |
|
# This method is here to remind you that it will be overridden by |
|
# the descendents of the spreadsheet class. |
|
} |
|
|
|
sub cleanup { |
|
my $self = shift(); |
|
$self->clear_package(); |
|
} |
|
|
sub initialize_spreadsheet_package { |
sub initialize_spreadsheet_package { |
&load_spreadsheet_expirationdates(); |
&load_spreadsheet_expirationdates(); |
&clear_spreadsheet_definition_cache(); |
&clear_spreadsheet_definition_cache(); |
Line 289 Returns the safe space required by a Spr
|
Line 299 Returns the safe space required by a Spr
|
=cut |
=cut |
|
|
###################################################### |
###################################################### |
|
{ |
|
|
|
my $safeeval; |
|
|
sub initialize_safe_space { |
sub initialize_safe_space { |
my $self = shift; |
my $self = shift; |
my $safeeval = new Safe(shift); |
if (! defined($safeeval)) { |
my $safehole = new Safe::Hole; |
$safeeval = new Safe(shift); |
$safeeval->permit("entereval"); |
my $safehole = new Safe::Hole; |
$safeeval->permit(":base_math"); |
$safeeval->permit("entereval"); |
$safeeval->permit("sort"); |
$safeeval->permit(":base_math"); |
$safeeval->deny(":base_io"); |
$safeeval->permit("sort"); |
$safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT'); |
$safeeval->deny(":base_io"); |
$safehole->wrap(\&mask,$safeeval,'&mask'); |
$safehole->wrap(\&Apache::lonnet::EXT,$safeeval,'&EXT'); |
$safeeval->share('$@'); |
$safehole->wrap(\&mask,$safeeval,'&mask'); |
my $code=<<'ENDDEFS'; |
$safeeval->share('$@'); |
|
my $code=<<'ENDDEFS'; |
# ---------------------------------------------------- Inside of the safe space |
# ---------------------------------------------------- Inside of the safe space |
# |
# |
# f: formulas |
# f: formulas |
Line 667 sub calc {
|
Line 682 sub calc {
|
|
|
# ------------------------------------------- End of "Inside of the safe space" |
# ------------------------------------------- End of "Inside of the safe space" |
ENDDEFS |
ENDDEFS |
$safeeval->reval($code); |
$safeeval->reval($code); |
|
} |
$self->{'safe'} = $safeeval; |
$self->{'safe'} = $safeeval; |
$self->{'root'} = $self->{'safe'}->root(); |
$self->{'root'} = $self->{'safe'}->root(); |
# |
# |
Line 681 ENDDEFS
|
Line 697 ENDDEFS
|
$self->{'safe'}->reval($initstring); |
$self->{'safe'}->reval($initstring); |
return $self; |
return $self; |
} |
} |
|
|
|
} |
|
|
###################################################### |
###################################################### |
|
|
=pod |
=pod |
Line 1341 sub create_excel_spreadsheet {
|
Line 1360 sub create_excel_spreadsheet {
|
sub outsheet_excel { |
sub outsheet_excel { |
my $self = shift; |
my $self = shift; |
my ($r) = @_; |
my ($r) = @_; |
|
my $connection = $r->connection(); |
$r->print("<h2>Preparing Excel Spreadsheet</h2>"); |
$r->print("<h2>Preparing Excel Spreadsheet</h2>"); |
# |
# |
# Create excel worksheet |
# Create excel worksheet |
Line 1364 sub outsheet_excel {
|
Line 1384 sub outsheet_excel {
|
$self->excel_output_row($worksheet,0,$rows_output++,'Summary'); |
$self->excel_output_row($worksheet,0,$rows_output++,'Summary'); |
$rows_output++; # skip a line |
$rows_output++; # skip a line |
# |
# |
$self->excel_rows($worksheet,$cols_output,$rows_output); |
$self->excel_rows($connection,$worksheet,$cols_output,$rows_output); |
# |
# |
# |
# |
# Close the excel file |
# Close the excel file |
Line 1382 sub outsheet_excel {
|
Line 1402 sub outsheet_excel {
|
sub outsheet_csv { |
sub outsheet_csv { |
my $self = shift; |
my $self = shift; |
my ($r) = @_; |
my ($r) = @_; |
|
my $connection = $r->connection(); |
my $csvdata = ''; |
my $csvdata = ''; |
my @Values; |
my @Values; |
# |
# |
Line 1405 sub outsheet_csv {
|
Line 1426 sub outsheet_csv {
|
} |
} |
# |
# |
# Output the body of the spreadsheet |
# Output the body of the spreadsheet |
$self->csv_rows($file); |
$self->csv_rows($connection,$file); |
# |
# |
# Close the csv file |
# Close the csv file |
close($file); |
close($file); |