Excel

вопросы связанные с работой версии с Chromium
Ответить
Misha
Сообщения: 77
Зарегистрирован: 22 июл 2019, 19:31

Excel

Сообщение Misha » 07 июн 2021, 13:14

Здравствуйте.
Решил попробовать поработать с экселем, но возникли вопросы:
1. Где смотреть документацию?
2. Функцию создания файла не нашел, решил сохранить новый файл, но выдает ошибку, что файл не открыт.
Как создать новый файл?
3. Описания примеров работы не прочитать, проблема с кодировкой - "Откроем";

Аватара пользователя
Support
Site Admin
Сообщения: 982
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Excel

Сообщение Support » 08 июн 2021, 15:38

Misha писал(а):
07 июн 2021, 13:14
Здравствуйте.
Решил попробовать поработать с экселем, но возникли вопросы:
1. Где смотреть документацию?
2. Функцию создания файла не нашел, решил сохранить новый файл, но выдает ошибку, что файл не открыт.
Как создать новый файл?
3. Описания примеров работы не прочитать, проблема с кодировкой - "Откроем";
1. Документацию по объекту пока не добавили. Как сможем сразу добавим.

2. Создание файла делается таким кодом :

    $file_path = "C:\путь к создаваемому файлу";

    $excelfile->open($file_path);

    $excelfile->add_sheet($file_path,"Имя Листа");

    $row_array = array("имя колонки1","имя колонки2","имя колонки3","имя колонки4");

    $excelfile->set_row($file_path,0,1,$row_array);

    $excelfile->autosize_col($file_path,0);

    $excelfile->save($file_path);

    $excelfile->close($file_path);


3. Вроде если открывать примеры в программе, то проблем с кодировкой не наблюдается.

Misha
Сообщения: 77
Зарегистрирован: 22 июл 2019, 19:31

Re: Excel

Сообщение Misha » 09 июн 2021, 13:54

Спасибо.
Файл появился, но данные в него не записываются, ошибка - "Error reading JArray from JsonReader. Path ``, line 0, position 0."
Пробовал указать абсолютный и относительный путь к файлу.

Насчет кодировки, если переключиться на UTF-8, то кириллица становится читабельной.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2807
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Excel

Сообщение bigfozzy » 09 июн 2021, 23:55

    $file_path = "D:\\путь к создаваемому файлу.xlsx";
    $excelfile->open($file_path);
    $excelfile->add_sheet($file_path,"Имя Листа1");
    $row_array = array("имя колонки1","имя колонки2","имя колонки3","имя колонки4");
    $excelfile->set_row($file_path,0,1,$row_array);
    $excelfile->autosize_col($file_path,0);
    $excelfile->save($file_path);
    $excelfile->close($file_path);

попробуйте так - расширение надо обязательно указать, а вообще в Test Samples есть примеры работы каждой команды, кодировка UTF-8

Misha
Сообщения: 77
Зарегистрирован: 22 июл 2019, 19:31

Re: Excel

Сообщение Misha » 10 июн 2021, 12:25

bigfozzy писал(а):
09 июн 2021, 23:55
    $file_path = "D:\\путь к создаваемому файлу.xlsx";
    $excelfile->open($file_path);
    $excelfile->add_sheet($file_path,"Имя Листа1");
    $row_array = array("имя колонки1","имя колонки2","имя колонки3","имя колонки4");
    $excelfile->set_row($file_path,0,1,$row_array);
    $excelfile->autosize_col($file_path,0);
    $excelfile->save($file_path);
    $excelfile->close($file_path);

попробуйте так - расширение надо обязательно указать, а вообще в Test Samples есть примеры работы каждой команды, кодировка UTF-8
Точная такая же ошибка, но переключился на UTF-8 и все заработало.

Я ранее пытался перевести свои скрипты в UTF-8, но часть функций работы с файлами не поддерживает смену кодировки, поэтому пришлось остаться на 1251.
Добавьте, пожалуйста, поддержку WINDOWS-1251.
Спасибо за помощь.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2807
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Excel

Сообщение bigfozzy » 10 июн 2021, 17:02

уже везде вроде добавлена поддержка кодировки

Misha
Сообщения: 77
Зарегистрирован: 22 июл 2019, 19:31

Re: Excel

Сообщение Misha » 10 июн 2021, 19:38

bigfozzy писал(а):
10 июн 2021, 17:02
уже везде вроде добавлена поддержка кодировки
Я год назад пытался перевести.

Подскажите, пожалуйста, еще по экселю.
1. Мне нужно текст выделить жирным, не нашел такой функции.
2. Проблема с типом ячеек.
У меня есть данные, например, "7 7".
По умолчанию ячейка конвертируется в дату - "07.07.2021"
Если я использую функцию $excelfile->set_cell_type($path,0,$last_row,"D","Text") или $excelfile->set_cell_type($path,0,$last_row,"D","General"), то в ячейки вместо "7 7", появляется число "44384".

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2807
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Excel

Сообщение bigfozzy » 16 июн 2021, 21:18

По 1му вопросу - пока такой возможности нет, добавили в туду

По 2му - вы вначале задайте тип ячейки - потом данные.

Misha
Сообщения: 77
Зарегистрирован: 22 июл 2019, 19:31

Re: Excel

Сообщение Misha » 16 июн 2021, 21:59

bigfozzy писал(а):
16 июн 2021, 21:18
По 1му вопросу - пока такой возможности нет, добавили в туду

По 2му - вы вначале задайте тип ячейки - потом данные.
По 2му - так и сделал, но не помогло.

Аватара пользователя
Support
Site Admin
Сообщения: 982
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Excel

Сообщение Support » 16 июн 2021, 23:01

Misha писал(а):
16 июн 2021, 21:59
bigfozzy писал(а):
16 июн 2021, 21:18
По 1му вопросу - пока такой возможности нет, добавили в туду

По 2му - вы вначале задайте тип ячейки - потом данные.
По 2му - так и сделал, но не помогло.
Попробуйте сначала задать значение, а потом выставить тип.

Misha
Сообщения: 77
Зарегистрирован: 22 июл 2019, 19:31

Re: Excel

Сообщение Misha » 17 июн 2021, 12:54

Support писал(а):
16 июн 2021, 23:01
Misha писал(а):
16 июн 2021, 21:59
bigfozzy писал(а):
16 июн 2021, 21:18
По 1му вопросу - пока такой возможности нет, добавили в туду

По 2му - вы вначале задайте тип ячейки - потом данные.
По 2му - так и сделал, но не помогло.
Попробуйте сначала задать значение, а потом выставить тип.
И так тоже пробовал - не помогло.

ushak
Сообщения: 57
Зарегистрирован: 18 янв 2015, 10:45

Re: Excel

Сообщение ushak » 20 июн 2021, 03:41

Чтобы получить дату, вам необходимо преобразовать метку времени Excel в метку времени Linux.
Excel считает даты в днях, Linux - в секундах.
Excel начинает отсчет с 1900 года, а Linux — с 1970 года.
Нужно удалить 70 лет дней: 25569 и умножить на секунды за день: 86400.
Для преобразования используйте date().

Примерный код:
function fromExcelToLinux($excel_time) {
return ($excel_time-25569)*86400;
}

$linux_time = fromExcelToLinux(30637);
echo date("Y-m-d",$linux_time);
//should print 1983-11-17

Попробуйте, может быть поможет...
У меня получалось.

viktor555
Сообщения: 14
Зарегистрирован: 21 июн 2013, 11:03

Re: Excel

Сообщение viktor555 » 19 июл 2021, 20:52

Подскажите как из xlsx листа создать массив, на Яве.
Использую команду - excelfile.read_sheet, файл удачно прочитывается.
После, из прочитанного, пробую создать массив. Он создается но каждая буква это отдельный элемент массива.
Может быть есть какая-то другая команда?
И еще, может быть я просто не нашел, но есть ли какие-то возможности прочитать в этой программе JONSON файл с использованием явы?
версия программы 7.60

Ответить