Страница 1 из 1

Excel

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

Re: Excel

Добавлено: 08 июн 2021, 15:38
Support
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. Вроде если открывать примеры в программе, то проблем с кодировкой не наблюдается.

Re: Excel

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

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

Re: Excel

Добавлено: 09 июн 2021, 23:55
bigfozzy
    $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

Re: Excel

Добавлено: 10 июн 2021, 12:25
Misha
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.
Спасибо за помощь.

Re: Excel

Добавлено: 10 июн 2021, 17:02
bigfozzy
уже везде вроде добавлена поддержка кодировки

Re: Excel

Добавлено: 10 июн 2021, 19:38
Misha
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".

Re: Excel

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

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

Re: Excel

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

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

Re: Excel

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

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

Re: Excel

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

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

Re: Excel

Добавлено: 20 июн 2021, 03:41
ushak
Чтобы получить дату, вам необходимо преобразовать метку времени 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

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

Re: Excel

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

Re: Excel

Добавлено: 05 окт 2021, 15:35
bigfozzy
JSON можно читать через средства Node.js

А по 1 части - если можно кусочек кода ?