| 1 | function fetchBigQueryData() { |
| 2 | var projectId = 'YOURPROJECTHERE'; |
| 3 | var query = 'SELECT unique_key,CAST(created_date AS DATE) AS created_date, status, status_notes, agency_name, category, complaint_type, source FROM `bigquery-public-data.san_francisco_311.311_service_requests` Where extract(year from created_date) = 2024 LIMIT 100;' |
| 4 | |
| 5 | //'SELECT * FROM `bigquery-public-data.san_francisco_311.311_service_requests` where agency_name = "Muni Feedback Received Queue" LIMIT 100'; |
| 6 | |
| 7 | var request = { |
| 8 | query: query, |
| 9 | useLegacySql: false |
| 10 | }; |
| 11 | |
| 12 | var queryResults = BigQuery.Jobs.query(request, projectId); |
| 13 | var jobId = queryResults.jobReference.jobId; |
| 14 | |
| 15 | var results = BigQuery.Jobs.getQueryResults(projectId, jobId); |
| 16 | var rows = results.rows; |
| 17 | |
| 18 | var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RawData'); |
| 19 | if (!sheet) { |
| 20 | sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('RawData'); |
| 21 | } else { |
| 22 | sheet.clear(); |
| 23 | } |
| 24 | |
| 25 | // Set headers |
| 26 | var headers = results.schema.fields.map(field => field.name); |
| 27 | sheet.appendRow(headers); |
| 28 | var headerRange = sheet.getRange(1, 1, 1, headers.length); |
| 29 | headerRange.setBackground('#000000').setFontColor('#FFFFFF').setFontWeight('bold'); |
| 30 | |
| 31 | |
| 32 | // Set Rows |
| 33 | for (var i = 0; i < rows.length; i++) { |
| 34 | var row = rows[i].f.map(cell => cell.v); |
| 35 | sheet.appendRow(row); |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | function formatReport() { |
| 40 | var ss = SpreadsheetApp.getActiveSpreadsheet(); |