Мне хотелось бы узнать ваше мнение о том, как я могу это улучшить. Я попробовал встроить диаграмму в результаты, но она не подходит, и некоторые данные трудно прочитать. Я также экспериментировал с веб-приложениями, используя скрипт Google Apps.
Смотрите мой скрипт ниже:
function showPCGMyeardata() {
var ui = SpreadsheetApp.getUi();
var input = ui.prompt("Please enter your First Name and PCGM.", ui.ButtonSet.OK_CANCEL);
if (input.getSelectedButton() == ui.Button.OK) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ws = ss.getSheetByName("Monitoring (Database)");
var data = ws.getRange("A2:Y" + ws.getLastRow()).getValues();
var userSelectedRep = input.getResponseText().toLowerCase();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var newData = data.filter(function (r) {
return r[24].toLowerCase() == userSelectedRep;
});
var yearInput = ui.prompt("Please enter the year (e.g., 2024):", ui.ButtonSet.OK_CANCEL);
if (yearInput.getSelectedButton() == ui.Button.OK) {
var selectedYear = yearInput.getResponseText();
var filteredYearData = newData.filter(function (r) {
var date = new Date(r[5]);
return date.getFullYear() == selectedYear;
});
var selectedColumns = filteredYearData.map(function (r) {
return [r[1], r[2], r[4], r[5], r[9], r[10], r[11], r[17]];
});
if (filteredYearData.length > 0) {
var newWs = ss.insertSheet(userSelectedRep);
var range = newWs.getRange("A2:H" + ws.getLastRow());
var chart = newWs.newChart()
.setChartType(Charts.ChartType.BAR) // Set the chart type
.addRange(range) // Add the data range
.setOption('title', 'INSTITUTION DATA')
.setOption('vAxis.title', 'INSTITUTION')
.setOption('hAxis.title', 'NUMBER OF CODES')
.setPosition(1, 10, 0, 0) // Position of the chart (row, column, offsetX, offsetY)
.build();
newWs.insertChart(chart);
var headers = ["INSTITUTION", "MONTH", "JO NUMBER", "DATE RELEASED", "TYPE OF USER", "PLATFORM", "TYPE OF ACCESS", "NUMBER OF ACCESS CODE"];
newWs.getRange(2, 1, selectedColumns.length, selectedColumns[0].length).setValues(selectedColumns);
newWs.getRange(1, 1, 1, headers.length).setValues([headers])
// format the header range
newWs.getRange(1, 1, 1, headers.length)
.setBackground("#a4c2f4")
.setFontWeight("bold")
.setFontSize(12)
.setWrap(true)
.setVerticalAlignment("middle")
.setHorizontalAlignment("center")
// set the row height
newWs.setRowHeight(1, 57);
// set the column widths
var colWidths = [500,100,206,106,110,114,115,130]
// loop through the columns and set width from array
// Column 3 to Column 10
for (var c=1;c
Подробнее здесь: [url]https://stackoverflow.com/questions/79085232/google-apps-script-embed-charts-on-google-sheets[/url]
Мне хотелось бы узнать ваше мнение о том, как я могу это улучшить. Я попробовал встроить диаграмму в результаты, но она не подходит, и некоторые данные трудно прочитать. Я также экспериментировал с веб-приложениями, используя скрипт Google Apps. Смотрите мой скрипт ниже: [code]function showPCGMyeardata() { var ui = SpreadsheetApp.getUi(); var input = ui.prompt("Please enter your First Name and PCGM.", ui.ButtonSet.OK_CANCEL);
if (input.getSelectedButton() == ui.Button.OK) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var ws = ss.getSheetByName("Monitoring (Database)"); var data = ws.getRange("A2:Y" + ws.getLastRow()).getValues(); var userSelectedRep = input.getResponseText().toLowerCase(); var ss = SpreadsheetApp.getActiveSpreadsheet();
var yearInput = ui.prompt("Please enter the year (e.g., 2024):", ui.ButtonSet.OK_CANCEL);
if (yearInput.getSelectedButton() == ui.Button.OK) { var selectedYear = yearInput.getResponseText(); var filteredYearData = newData.filter(function (r) { var date = new Date(r[5]); return date.getFullYear() == selectedYear; });
if (filteredYearData.length > 0) { var newWs = ss.insertSheet(userSelectedRep); var range = newWs.getRange("A2:H" + ws.getLastRow()); var chart = newWs.newChart() .setChartType(Charts.ChartType.BAR) // Set the chart type .addRange(range) // Add the data range .setOption('title', 'INSTITUTION DATA') .setOption('vAxis.title', 'INSTITUTION') .setOption('hAxis.title', 'NUMBER OF CODES') .setPosition(1, 10, 0, 0) // Position of the chart (row, column, offsetX, offsetY)
.build();
newWs.insertChart(chart);
var headers = ["INSTITUTION", "MONTH", "JO NUMBER", "DATE RELEASED", "TYPE OF USER", "PLATFORM", "TYPE OF ACCESS", "NUMBER OF ACCESS CODE"];
newWs.getRange(2, 1, selectedColumns.length, selectedColumns[0].length).setValues(selectedColumns); newWs.getRange(1, 1, 1, headers.length).setValues([headers]) // format the header range newWs.getRange(1, 1, 1, headers.length) .setBackground("#a4c2f4") .setFontWeight("bold") .setFontSize(12) .setWrap(true) .setVerticalAlignment("middle") .setHorizontalAlignment("center") // set the row height newWs.setRowHeight(1, 57); // set the column widths var colWidths = [500,100,206,106,110,114,115,130] // loop through the columns and set width from array // Column 3 to Column 10 for (var c=1;c