Skorygować skrypt dla Apps Script
Skrypt nie zapisuje danych w już utworzonej linii z datą i z każdym nowym raportem w telegramie, tworzy nową linię z datą, która została już utworzona przez pierwszy raport. Raporty są wysyłane do grupy telegramowej przez różnych pracowników. Zrzut ekranu tabeli w załączniku.
Zasada działania skryptu: gdy przychodzi wiadomość do grupy dotycząca raportów, dane z niej są przekazywane do arkusza Google; przy tym skrypt określa z wiadomości, do której zakładki wysłać dane i do której kolumny. Jeśli w komórce w odpowiedniej kolumnie i w wierszu z już utworzoną datą są dane, to nowe nie powinny być tam wstawiane.
Trzeba poprawić, aby nie tworzyła się nowa linia, jeśli linia z datą już istnieje. I dane były dodawane do linii z już utworzoną datą, jeśli komórki są puste.
Sam skrypt:
const TOKEN = "ххххххх";
const SPREADSHEET_ID = "ххххххх";
/**
* Wyszukiwanie linii z datą lub tworzenie nowej
*/
function findOrCreateRow(sheet, dateStr) {
const [targetDay, targetMonth] = dateStr.split(".").map(Number);
// Pobieramy WSZYSTKIE wartości kolumny A
const lastRow = sheet.getLastRow();
if (lastRow > 0) {
const displayValues = sheet.getRange(1, 1, lastRow, 1).getDisplayValues();
for (let i = 0; i < displayValues.length; i++) {
const cellText = displayValues[i][0];
if (!cellText) continue;
const parts = cellText.split(".");
if (parts.length < 2) continue;
const day = parseInt(parts[0]);
const month = parseInt(parts[1]);
if (day === targetDay && month === targetMonth) {
Logger.log("Znaleziono linię: " + (i + 1));
return i + 1;
}
}
}
// Jeśli data nie została znaleziona — tworzymy nową
const currentYear = new Date().getFullYear();
const newDate = new Date(currentYear, targetMonth - 1, targetDay);
const newRow = sheet.getLastRow() + 1; // POBIERAMY AKTUALNY lastRow
sheet.getRange(newRow, 1)
.setValue(newDate)
.setNumberFormat("dd.MM.yyyy");
SpreadsheetApp.flush();
Logger.log("Utworzono nową linię: " + newRow);
return newRow;
}
Załączniki 1
Opinia zleceniodawcy o współpracy z Ihor Symchuk
Skorygować skrypt dla Apps ScriptWszystko było zrozumiałe. Zrozumiałem, wniknąłem i zrobiłem tak, jak powinno być. Dziękuję!
Opinia freelancera o współpracy z Andrey Vernidub
Skorygować skrypt dla Apps ScriptDziękuję! Podobało się współpracować!
-
12618 600 0 Dzień dobry, napisałem wiele skryptów dla Google Spreadsheet, pracuję z Apps Script. Poprawię funkcjonalność. Proszę o kontakt!
-
1798 18 0 Dzień dobry, jestem gotów podjąć się wykonania zadania. Zrobię to szybko i jakościowo. Będę zadowolony ze współpracy.
-
10123 117 0 Cześć.
Mam doświadczenie z Apps Script. Jestem gotów się tym zająć. Napisz, omówimy.
-
2380 8 0 Witam, jestem gotów natychmiast zająć się Państwa projektem i wykonać go szybko oraz jakościowo, proszę się kontaktować, mam doświadczenie z appps script.
-
1052 6 0 Rozumiem zadanie. Obecnie skrypt dla Apps Script tworzy nowy wiersz dla każdego wysłania raportu, nawet jeśli data już istnieje — prowadzi to do duplikacji. Należy poprawić logikę tak, aby przy zbiegu daty używany był istniejący wiersz, a dane były zapisywane tylko w pustych kolumnach, bez nadpisywania.
Poprawię funkcję `findOrCreateRow`, aby poprawnie wyszukiwała wiersz według daty, uwzględniając format `dd.MM`, i nie tworzyła duplikatów. Zadbam również o to, aby nowe dane były dodawane do tych samych wierszy, jeśli nie są jeszcze wypełnione w odpowiednich kolumnach. Ważne jest, aby bieżący rok był brany pod uwagę, ale data jest już podawana tylko jako dzień i miesiąc — oznacza to, że należy unikać błędów przy porównywaniu.
Mam doświadczenie w pracy z Google Apps Script, automatyzacją procesów przez boty Telegram, integracją wiadomości w Google Arkuszach oraz przetwarzaniem danych bez duplikacji. Już realizowałem podobne scenariusze dla zespołów, gdzie kilku użytkowników wysyła raporty, a system agreguje je w jeden wiersz.
Poprawiony skrypt będzie stabilnie działał, uwzględniając wszystkie warunki: wyszukiwanie istniejącej daty, zapobieganie tworzeniu nowych wierszy, poprawne dodawanie danych do odpowiednich kolumn bez nadpisywania.
Aktualne zlecenia dla freelancerów w kategorii Javascript & Typescript
Komercyjna platforma wideokonferencyjna on-premise „ViM”Wymagana jest opracowanie systemu wideokonferencyjnego on-premise z podstawowym obliczeniem na 100 jednoczesnych połączeń (10 izolowanych pokoi po 10 osób). Platforma powinna mieć wbudowaną architekturę do przyszłego poziomego skalowania do 1000 użytkowników poprzez dodawanie… Javascript & Typescript, Programowanie stron internetowych ∙ 6 godzin 12 minut temu ∙ 21 ofert |
Szukam mentora z Claude Code do uruchomienia projektu internetowego od zera**Krótko o zadaniu:** Jestem nowicjuszem bez doświadczenia w programowaniu. Mam gotowe TŻ na rozwój strony (42 strony, Next.js, PostgreSQL). Chcę zrealizować to samodzielnie za pomocą Claude Code - potrzebuję specjalisty, który skonfiguruje środowisko i nauczy mnie pracy z… Javascript & Typescript, Edukacja ∙ 1 dzień 9 godzin temu ∙ 18 ofert |
Aktualizacja projektu na stronieTrzeba zaktualizować design istniejącej strony internetowej używając HTML, CSS, JS: odświeżyć wygląd, uczynić go nowoczesnym i responsywnym na urządzenia mobilne. Wymagana jest dodanie płynnych animacji i interaktywnych elementów. Układ HTML i CSS, Javascript & Typescript ∙ 2 dni 3 godziny temu ∙ 87 ofert |
Konsultacja i audyt bieżącego projektu na Odoo 19 Community EditionSzukamy programisty Odoo — samodzielnego dewelopera z doświadczeniem w pracy z Odoo 19 Community Edition, w tym z wykorzystaniem Claude Code. Potrzebujemy specjalisty, który ma zrealizowane projekty w Odoo oraz praktyczne doświadczenie w programowaniu z użyciem Claude Code.… C i C++, Javascript & Typescript ∙ 2 dni 9 godzin temu ∙ 7 ofert |
Sklep internetowy z odzieżąPotrzebny programista do sklepu internetowego z odzieżą Szukam doświadczonego programisty do stworzenia pełnoprawnego sklepu internetowego z odzieżą z modelem sprzedaży dropshipping. Co należy zrobić: 6 stron: strona główna, produkt, koszyk, zamówienie, konto, panel… Układ HTML i CSS, Javascript & Typescript ∙ 4 dni 6 godzin temu ∙ 101 ofert |