0
- 28.05.2012 - 15:34
|
Помогите советом: обработка заполнения документа читает файл Excel, у которого кодировка UTF-8; при этом русские буквы попадают в 1С кракозябрами. Как сделать чтобы все читалось нормально?
| |
1
- 28.05.2012 - 15:48
| Покажи, как читаешь. | |
2
- 28.05.2012 - 16:59
|
Excel = новый COMОбъект("Excel.Application"); Excel.Workbooks.Open(ИмяФайла); Excel.Sheets(НомерЛиста).select(); Для а = 2 по ФайлСтрок-1 Цикл Ячейка = СокрЛП(Excel.Cells(а,НомерКолонки).Value); КонецЦикла; | |
3
- 28.05.2012 - 17:06
| какой формат файла? CSV ? | |
4
- 28.05.2012 - 20:05
| Пример перекодировки в/из utf8 в 1с77 штатными средствами | |
5
- 28.05.2012 - 20:34
|
4-Синегурочка > У автора "восьмерка" ;) 2-romba > Не различаем .value (значение) и .text (представление)? Зря. Для строк, разумеется, это одинаково, но вот числа или даты - источник проблем. Преобразования (вроде СокрЛП) лучше применять после определения типа. К сабжу отношение не имеет, но все-таки... :) | |
6
- 29.05.2012 - 05:14
|
(3) csv (4) Спасибо, переложу на восьмерку | |
7
- 29.05.2012 - 06:34
|
(6) CSV - это, по сути, тестовый файл с разделителями (разделитель - точка с запятой). Его проще открывать без использования приложения EXCEL, тупо читать как текст. Текст = СоздатьОбъект("Текст"); Текст.Открыть(ПолныйПутьКФайлу); Для i=1 по Текст.КоличествоСтрок() цикл ТекСтрока = OemToAnsi(Текст.ПолучитьСтроку(i)); МногоСтрок = СтрЗаменить(ТекСтрока, ";", РазделительСтрок); ПервоеПоле = СтрПолучитьСтроку(МногоСтрок,1); ВтороеПоле = СтрПолучитьСтроку(МногоСтрок,2); ТретьеПоле = СтрПолучитьСтроку(МногоСтрок,3); | |
8
- 29.05.2012 - 06:36
|
здесь обрати внимание на использование функции OemToAnsi она преобразует символы к читаемой кодировке | |
9
- 29.05.2012 - 15:26
| (8) гонишь . это перекодировки из 1251 страницы в 866 и обратно . к УТФ-8 никакого отношения не имеет . Не учи плохому . | |
10
- 29.05.2012 - 17:15
|
(9) тьху на тебя! не пробовал - не говори. | |
11
- 29.05.2012 - 17:18
| 10-Ирли Бёрд > кинь в него голубем! | |
12
- 29.05.2012 - 17:49
| (10) стопудово Оем2Анси преобразует УТФ8...? | |
13
- 29.05.2012 - 21:32
|
"Excel, у которого кодировка UTF-8" нобель ворочается | |
14
- 31.05.2012 - 14:08
|
Не получается: OemToAnsi в восьмерке нет; процедура из (4) не работает - все строки делает пустыми. Еще идеи есть? | |
15
- 31.05.2012 - 15:50
|
Я делал через вот это: Стрим = СоздатьОбъект("ADODB.Stream"); Стрим.LoadFromFile(Путь+Имя); Стирм.Charset = "utf8"; Посмотри в интернете методы этой штуки. | |
| Интернет-форум Краснодарского края и Краснодара |