![]() |
Не читается Exel - файл из 1С Помогите советом: обработка заполнения документа читает файл Excel, у которого кодировка UTF-8; при этом русские буквы попадают в 1С кракозябрами. Как сделать чтобы все читалось нормально? |
Покажи, как читаешь. |
Excel = новый COMОбъект("Excel.Application"); Excel.Workbooks.Open(ИмяФайла); Excel.Sheets(НомерЛиста).select(); Для а = 2 по ФайлСтрок-1 Цикл Ячейка = СокрЛП(Excel.Cells(а,НомерКолонки).Value); КонецЦикла; |
какой формат файла? CSV ? |
[url=http://help1c.com/faq/view/495.html]Пример перекодировки в/из utf8 в 1с77 штатными средствами[/url] |
4-Синегурочка > У автора "восьмерка" ;) 2-romba > Не различаем [b].value[/b] (значение) и [b].text[/b] (представление)? Зря. Для строк, разумеется, это одинаково, но вот числа или даты - источник проблем. Преобразования (вроде СокрЛП) лучше применять после определения типа. К сабжу отношение не имеет, но все-таки... :) |
(3) csv (4) Спасибо, переложу на восьмерку |
(6) CSV - это, по сути, тестовый файл с разделителями (разделитель - точка с запятой). Его проще открывать без использования приложения EXCEL, тупо читать как текст. Текст = СоздатьОбъект("Текст"); Текст.Открыть(ПолныйПутьКФайлу); Для i=1 по Текст.КоличествоСтрок() цикл ТекСтрока = [b]OemToAnsi[/b](Текст.ПолучитьСтроку(i)); МногоСтрок = СтрЗаменить(ТекСтрока, ";", РазделительСтрок); ПервоеПоле = СтрПолучитьСтроку(МногоСтрок,1); ВтороеПоле = СтрПолучитьСтроку(МногоСтрок,2); ТретьеПоле = СтрПолучитьСтроку(МногоСтрок,3); |
здесь обрати внимание на использование функции [b]OemToAnsi[/b] она преобразует символы к читаемой кодировке |
(8) гонишь . это перекодировки из 1251 страницы в 866 и обратно . к УТФ-8 никакого отношения не имеет . Не учи плохому . |
(9) тьху на тебя! не пробовал - не говори. |
10-Ирли Бёрд > кинь в него голубем! |
(10) стопудово Оем2Анси преобразует УТФ8...? |
"Excel, у которого кодировка UTF-8" нобель ворочается |
Не получается: OemToAnsi в восьмерке нет; процедура из (4) не работает - все строки делает пустыми. Еще идеи есть? |
Я делал через вот это: Стрим = СоздатьОбъект("ADODB.Stream"); Стрим.LoadFromFile(Путь+Имя); Стирм.Charset = "utf8"; Посмотри в интернете методы этой штуки. |
Текущее время: 20:19. Часовой пояс GMT +3. |