|
Прочитать ячейку excel с форматом - дата | ☑ | ||
---|---|---|---|---|
0
ArturDoo
05.07.24
✎
08:58
|
Здравствуйте, есть обработка по загрузке личных данных сотрудников, если в загружаемом файле excel присутствует ячейка с форматом - дата, обработка читает ее, как не понятное число (45175). Понятно, откуда это число. Если перевести формат ячейки в текст, оно и вылезет. Может ли 1с прочитать ячейку с форматом - Дата, не искажая данные?
|
|||
1
Garykom
05.07.24
✎
09:04
|
Какая метода чтения файлика эксель?
|
|||
2
ArturDoo
05.07.24
✎
09:08
|
(1)НачатьСозданиеДвоичныхДанныхИзФайла
|
|||
3
ArturDoo
05.07.24
✎
09:10
|
Потом двоичные данные читаются в табличный документ
|
|||
4
Гена
05.07.24
✎
09:18
|
'190001010000'+(ЧислоExcel*86400)
|
|||
5
ArturDoo
05.07.24
✎
09:21
|
(4) и что должно из этого получиться?
|
|||
6
Гена
05.07.24
✎
09:26
|
(5) Если не ошибся в своей "навскидке", то получится дата для 1С )
|
|||
7
ArturDoo
05.07.24
✎
09:28
|
(6) Да, вы правы, получается дата, но почему-то на 2 дня больше)
|
|||
8
Гена
05.07.24
✎
09:29
|
На пальцах:
В экселе дата как число есть количество дней от 1-го января 1900 года. А дата в 1С в секундах от РХ. Эрго, к 01.01.1900 для 1С надо добавить дни в экселе, переведённые в секунды. Как-то так ) |
|||
9
ArturDoo
05.07.24
✎
09:32
|
Спасибо вам большое, 2 дня вычту из даты ексель, и будет мне счастье)
|
|||
10
Гена
05.07.24
✎
09:32
|
(7) Скорее всего эффект вагона и платформы. Длина дня на границах. Тупо вычитайте 2 и все дела.
|
|||
11
Климов Сергей
05.07.24
✎
09:48
|
(0) Ещё вариант:
Дата = ОбщегоНазначенияКлиентСервер.СтрокаВДату(ТекстЯчейки); |
|||
12
Гена
05.07.24
✎
09:54
|
(11) У автора ж не строка "06.09.2023", а число 45175.
|
|||
13
Климов Сергей
05.07.24
✎
10:00
|
(12) По моему опыту, если прочитать xls в табличный документ, то в тексте ячеек будет текстовое представление даты. Как-то так:
ТекстыЯчеек.Дата = ТабличныйДокумент.Область(НомерСтроки, НомераСтолбцов.Дата, НомерСтроки, НомераСтолбцов.Дата).Текст; Дата = ОбщегоНазначенияКлиентСервер.СтрокаВДату(ТекстыЯчеек.Дата); |
|||
14
Garykom
05.07.24
✎
10:26
|
ТабличныйДокумент (SpreadsheetDocument) Прочитать (Read) Вариант синтаксиса: Из файла Синтаксис: Прочитать(<ИмяФайла>, <СпособЧтенияЗначений>) Параметры: <ИмяФайла> (обязательный) Тип: Строка. Имя файла табличного документа. <СпособЧтенияЗначений> (необязательный) Тип: СпособЧтенияЗначенийТабличногоДокумента. Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS. При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра. Значение по умолчанию: Текст. Описание варианта метода: Чтение табличного документа из файла. |
|||
15
Гена
05.07.24
✎
10:58
|
(14) Ну и считается текст "45175" и чего потом с ним делать?
|
|||
16
Климов Сергей
05.07.24
✎
11:41
|
(15) Если СпособЧтенияЗначений при вызове не указан, то в текст ячейки помещается текстовое представление даты.
|
|||
17
Гена
05.07.24
✎
11:46
|
(16) Практика - критерий истины. Лень проверять.
|
|||
18
skafandr
05.07.24
✎
13:29
|
(0) А попробуйте выравнивание чтобы в ячейках с датами было не вправо а по центру
|
|||
19
Гена
05.07.24
✎
13:36
|
(18) Тогда уж влево. Мысль интересная, может сработать по логике.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |