[Rozwiązany] PHPOffice, PhpSpreadsheets, problem z zakresem z funkcją |
[Rozwiązany] PHPOffice, PhpSpreadsheets, problem z zakresem z funkcją |
11.05.2022, 09:05:08
Post
#1
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) |
Witam.
Tworzę w PHPOffice / PHPSpreadsheet w wersji 1.20.0 - 2021-11-23 formułę typu Kod =SUM($K$2:INDIRECT("K"&(ROW()-4))) Excel tą formułę przyjmuje bez zastrzeżeń, ale klasa PHP niestety zwraca błądKod Fatal error: Uncaught TypeError... Ustaliłem, że problem tkwi w części, gdzie podany zakres jest łączony z funkcji INDIRECT Kod =INDIRECT("K"&(ROW()-4)) // nie zgłasza błędu =SUM(INDIRECT("K"&(ROW()-4))) // nie zwraca błędu =SUM(INDIRECT("K"&(ROW()-5)):INDIRECT("K"&(ROW()-4))) // ZWRACA BŁĄD Uncaught TypeError: trim(): Argument #1 ($string) must be of type string, array given =SUM($K$5:INDIRECT("K"&(ROW()-4))) // ZWRACA BŁĄD - błędna formuła =SUM($K$5;INDIRECT("K"&(ROW()-4))) // ZWRACA BŁĄD - błędna formuła =SUM($K$5:INDIRECT("K"+(ROW()-4))) // nie zwraca błędu, ale Excel wskazuje błędny argument =SUM($K$5;INDIRECT("K"+(ROW()-4))) // ZWRACA BŁĄD - błędna formuła Podejrzewam, że problemem jest określenie zakresu czyli dwukropek -> średnik, zgodnie z dokumentacją zastąpiłem, ale nadal jestem w ślepej uliczce.\ Czy ktoś dostrzega defekt? Ten post edytował bulimaxiu 11.05.2022, 09:53:44 |
|
|
11.05.2022, 09:11:51
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Do jakiej funkcji php/phpoffice przekazyjesz ten tekst?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
11.05.2022, 09:52:54
Post
#3
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) |
Ten tekst przekazuje do funkcji $sheet->setCellValue(), tak jak inne formuły (działają), choć nie zawierające zakresów.
Kod $sheet->setCellValue('K20', '=SUM($K$5;INDIRECT("K"&(ROW()-4)))'); Problem rozwiązany. Wystarczyło zakres komórek określić w funkcji INDIRECT, a nie tylko adres docelowej komórki: Kod =SUM(INDIRECT("$K$2:K"&(ROW()-4))) Pomimo, że Excel akceptuje obie te formy, to PHPOffice nakazuje tylko tą jedną. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 15:00 |