format excel headings properly

This commit is contained in:
2018-07-13 14:27:32 +10:00
parent 12cc3d33c9
commit 1ee6d8e7c0

View File

@@ -540,8 +540,6 @@ function booking_varietysessions_csv_report($timeslot_id) {
}
//set options for the CSV file
$name = 'bookings-timeslot-' . $timeslot_id . '-variety-sessions-' . format_date(time(), 'custom', 'Y-m-d-His');
$filename = file_directory_temp() . '/' . $name;
$csv = '';
$delimiter = ',';
$enclosure = '"';
@@ -566,7 +564,7 @@ function booking_varietysessions_csv_report($timeslot_id) {
//watchdog('booking_debug', 'booking_varietysessions_csv_report session members: <pre>@info</pre>', array('@info' => print_r( $session_members, true)));
//generate the row data
// Organise people by session ID
foreach ($session_members as $member) {
$session_ids = drupal_json_decode($member->booking_variety_ids);
//watchdog('booking_debug', 'booking_varietysessions_csv_report person session ids: <pre>@info</pre>', array('@info' => print_r( $session_ids, true)));
@@ -585,7 +583,7 @@ function booking_varietysessions_csv_report($timeslot_id) {
}
//watchdog('booking_debug', "<pre>Study Group CSV Report\n@info</pre>", array('@info' => print_r( $data_array, true)));
//calculate the CSV layout
// Calculate column headings and spreadsheet layout
$header_array = array_keys($data);
$maximums = array();
$column_headings = array();
@@ -595,19 +593,14 @@ function booking_varietysessions_csv_report($timeslot_id) {
$heading = $variety_sessions[$column]->booking_variety_descrip;
//enclose $heading if necessary
if ( $encloseAll || preg_match( "/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $heading ) ) {
$column_headings[] = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $heading) . $enclosure;
$heading = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $heading) . $enclosure;
}
else {
$column_headings[] = $heading;
}
//$column_headings[] = $variety_sessions[$column]->booking_variety_descrip;
// Adjusted for excel, assume each column is just a string
$column_headings[] = array($heading => 'string');
}
//add the column headings to the CSV
$header = implode($delimiter, $column_headings);
$csv .= $header . "\n";
//generate each row for the CSV
// Calculate each row based on column headings
for ($i = 0; $i < max($maximums); $i++) {
$output = array();
foreach ($header_array as $column) {
@@ -622,17 +615,13 @@ function booking_varietysessions_csv_report($timeslot_id) {
}
} //loop through columns
$rows[] = $output;
$row = implode($delimiter, $output) . "\n";
$csv .= $row;
//$row = implode($delimiter, $output) . "\n";
//$csv .= $row;
}
//ini_set('display_errors', 0);
//ini_set('log_errors', 1);
//error_reporting(E_ALL & ~E_NOTICE);
// Create headers for Excel spreadsheet
$filename = $name . ".xlsx";
$filename = 'bookings-timeslot-' . $timeslot_id . '-variety-sessions-' . format_date(time(), 'custom', 'Y-m-d-His') . ".xlsx";
header('Content-disposition: attachment; filename="'.XLSXWriter::sanitize_filename($filename).'"');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header('Content-Transfer-Encoding: binary');
@@ -643,7 +632,7 @@ function booking_varietysessions_csv_report($timeslot_id) {
$writer = new XLSXWriter();
$writer->setAuthor($event->booking_eventname);
//Add the header row
$writer->writeSheetRow($sheetname, $column_headings);
$writer->writeSheetHeader($sheetname, $column_headings);
//Add the data
foreach($rows as $row) {
@@ -652,12 +641,6 @@ function booking_varietysessions_csv_report($timeslot_id) {
$writer->writeToStdOut();
exit(0);
//output the CSV to the browser
drupal_add_http_header("Content-type", "text/csv; charset=utf-8");
drupal_add_http_header("Content-Disposition", "attachment; filename=" . $name . ".csv");
print $csv;
exit(0);
}
/**