const Excel = require('@microsoft/office-
js/excel');
async function creaTabellaSettimanale() {
try {
await Excel.run(async (context) => {
// Ottieni la data corrente
let today = new Date();
// Trova il lunedì successivo alla data
odierna
let giornoSettimana = today.getDay();
// 0 (Domenica) a 6 (Sabato)
let giorniDaLunedi =
(giornoSettimana === 0 ? 1 : 7 -
giornoSettimana); // Calcola i giorni da oggi
al prossimo lunedì
let prossimoLunedi = new
Date(today);
prossimoLunedi.setDate(today.getDate() +
giorniDaLunedi);
// Crea un nuovo foglio
const nuovoFoglio =
context.workbook.worksheets.add("Settima
nale");
// Aggiungi l'intestazione della tabella
const intestazione =
nuovoFoglio.getRange("A1:D1");
intestazione.values = [["DATA",
"COGNOME", "NOME", "IMPORTO"]];
intestazione.format.autofitColumns();
intestazione.format.autofitRows();
intestazione.format.horizontalAlignment =
Excel.HorizontalAlignment.center;
intestazione.format.font.bold = true;
// Aggiungi le righe con le date da
lunedì a sabato
for (let i = 0; i < 6; i++) {
const data = new
Date(prossimoLunedi);
data.setDate(prossimoLunedi.getDate() + i);
// Incrementa di un giorno per ogni riga
nuovoFoglio.getRange("A" + (i +
2)).values = [[data.toLocaleDateString()]];
nuovoFoglio.getRange("B" + (i +
2)).values = [[""]];
nuovoFoglio.getRange("C" + (i +
2)).values = [[""]];
nuovoFoglio.getRange("D" + (i +
2)).values = [[""]];
}
// Sincronizza per applicare le
modifiche
await context.sync();
console.log("Tabella settimanale
creata.");
});
} catch (error) {
console.error("Errore durante la
creazione della tabella settimanale:", error);
}
}
// Esegui la funzione per creare la tabella
settimanale
creaTabellaSettimanale();
Sub CreaTabellaSettimanale()
Dim ws As Worksheet
Dim giornoSettimana As Integer
Dim prossimoLunedi As Date
Dim i As Integer
Dim dataCorrente As Date
' Calcola la data del prossimo lunedì
dataCorrente = Date
giornoSettimana = Weekday(dataCorrente,
vbMonday) ' 1 = lunedì, 7 = domenica
' Calcola la data del prossimo lunedì
prossimoLunedi = DateAdd("d", 8 -
giornoSettimana, dataCorrente)
' Crea un nuovo foglio
Set ws = ThisWorkbook.Worksheets.Add
ws.Name = "Settimanale"
' Aggiungi l'intestazione della tabella
ws.Cells(1, 1).Value = "DATA"
ws.Cells(1, 2).Value = "COGNOME"
ws.Cells(1, 3).Value = "NOME"
ws.Cells(1, 4).Value = "IMPORTO"
' Formatta la prima riga (centrata e grassetto)
With ws.Rows(1)
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
' Popola la tabella con le date da lunedì a
sabato
For i = 0 To 5
ws.Cells(i + 2, 1).Value = prossimoLunedi + i
ws.Cells(i + 2, 2).Value = "" ' Colonna
"COGNOME"
ws.Cells(i + 2, 3).Value = "" ' Colonna
"NOME"
ws.Cells(i + 2, 4).Value = "" ' Colonna
"IMPORTO"
Next i
' Applica l'autofit alle colonne
ws.Columns("A:D").AutoFit
End Sub
javascript
VBA
Crea Tabella su foglio di Excel