|
|
|
из excel в 1С | ☑ | ||
|---|---|---|---|---|
|
0
besks
13.05.08
✎
15:32
|
Здравствуйте.
Есть обработка загрузки в ТЗ 1С таблицы excel. Проблема: одна из ячеек excel имеет формат "ddmmyyyy ччммсс". Хочется получить это значение в ТЗ 1С, хотя бы в текстовом формате, а берется только дата. Помогите... |
|||
|
1
ТелепатБот
гуру
13.05.08
✎
15:32
|
||||
|
2
Torquader
13.05.08
✎
15:37
|
Sheet.Cells(Row,Col).Text - пробовали ?
Если не помогает, то v=Sheet.Cells(Row,Col).Value - получаем дробное число (double) целая часть - дата, дробная часть - время. |
|||
|
3
Касандер
13.05.08
✎
15:49
|
Код в студию!
|
|||
|
4
Касандер
13.05.08
✎
15:54
|
Не пойму, почему нельзя превратить в строку полученную дату из Excel при заполнении таблицы?
На худой конец завести строчную колонку, в которую сдублировать строчное значение даты. Ходя бы при последующем переборе строк таблицы. |
|||
|
5
besks
13.05.08
✎
15:59
|
На text-ругается,а на value - выдает дату, а хотелось бы получить еще и время:
rs.MoveFirst(); Пока rs.EOF() = 0 Цикл ТЗ.НоваяСтрока(); Для iCount = 0 По rs.Fields.Count-1 Цикл ТЗ.УстановитьЗначение(ТЗ.КоличествоСтрок(),iCount+1,rs.Fields(iCount).Value); КонецЦикла; rs.MoveNext(); КонецЦикла; М.б. кто-нибудь на док. по АДО отправит, вообще было бы здорово, а то методом тыка - тяжеловато |
|||
|
6
YF
13.05.08
✎
16:00
|
(0) Поиском по форуму, а мона сюды поглядеть: Вытащить дату и время из ячейки Дата-время Excell
|
|||
|
7
Касандер
13.05.08
✎
16:08
|
(5) Извращенцы, блин.
Внутрь цикла: ЛеваяПеременная = ... ТЗ.ИмяКолонки = Строка(ЛеваяПеременная); или обрабатывай левую как хочешь. |
|||
|
8
Torquader
13.05.08
✎
16:10
|
А так и не получится, так как ADO передаёт в виде даты-времени, что 1С автоматически преобразует в дату, т.к. 1С не все типы данных понимает.
Параметр Text доступен только если читаешь через объект Excel.Application, а не через ADO. |
|||
|
9
besks
13.05.08
✎
16:13
|
Касандеру:
Это неизменяет смысла, значение то все равно нет, а как его занести в ТЗ это уже мелочи |
|||
|
10
YF
13.05.08
✎
16:16
|
(9) По АДО никак не получишь ты того, что хочешь, (8) уже сказал ...
|
|||
|
11
Касандер
13.05.08
✎
16:17
|
Винаватс, а что отладчик показывает после:
= Строка(rs.Fields(iCount).Value) ? |
|||
|
12
besks
13.05.08
✎
16:18
|
Спасибо, буду смотреть Excel.Application.
Все вопросы буду задавать попозже |
|||
|
13
besks
13.05.08
✎
16:18
|
что отладчик показывает после:
= Строка(rs.Fields(iCount).Value) ? Дату |
|||
|
14
Касандер
13.05.08
✎
16:19
|
А жаль, тогда придётся документик форматнуть.
|
|||
|
15
Касандер
13.05.08
✎
16:22
|
А после: Строка(Sheet.Cells(Row,Col)) ?
|
|||
|
16
FreeFin
13.05.08
✎
16:26
|
ДатВрем=Строка(ExcelApp.Cells(1,1).Text);
Датта=Дата(Лев(ДатВрем,8)); Времья=Сред(ДатВрем,10); |
|||
|
17
besks
13.05.08
✎
16:28
|
Все равно дата, а руками ячейку делить не буду.
Надо сделать и что бы люди работали без моего вмешательство. Лучше скиньте ссылку на Excel.Application, что бы мне не искать |
|||
|
18
Torquader
13.05.08
✎
16:35
|
ExcelOle=CreateObject("Excel.Application");
ExcelWorkbook=ExcelOle.Workbooks.Open(ИмяФайла); Sheet=ExcelWorkbook.Worksheets.Item(1);// если только один лист BeginLine=Sheet.UsedRange.Row; EndLine=Sheet.UsedRange.Rows.Count+BeginLine-1; for l=BeginLine to EndLine do v=Sheet.Cells(l,1).Text; // или в какой колонке у вас дата ? enddo; // потом закрываем Excel ExcelOle.Quit(); // или делаем его видимым, чтобы пользователь сам его закрыт ExcelOle.Visible=-1;// True = -1 Удачи. |
|||
|
19
FreeFin
13.05.08
✎
16:46
|
+(18) а можно и проверить,... я помню токмо через селект:
ExcelApp.Range("A1").Select(); Если ExcelApp.Selection.NumberFormat = "ДД.ММ.ГГ ч:мм;@" Тогда Сообщить(Строка(ExcelApp.Cells(1,1).Text)); //строка томушто первая цифра КонецЕсли; |
|||
|
20
besks
13.05.08
✎
17:01
|
Torquader
Спасибо, все заработало. Не подскажешь как определить к-во столбцов, чтобы не жестко задавать? |
|||
|
21
FN
13.05.08
✎
17:01
|
(18) А если в региональных настройках дата в виде yyyy-MM-dd? Что тогда вернет .Text?
По-моему совсем правильно будет сначала задать ячейке четкий формат даты, а уже потом читать .Text |
|||
|
22
Torquader
13.05.08
✎
18:12
|
Sheet.UsedRange.Column - начальная
Sheet.UsedRange.Columns.Count - количество колонок |
|||
|
23
besks
14.05.08
✎
08:33
|
Torquader
Спасибо. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |