Форум: "WinAPI";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
ВнизПередать русккий текст в Excel Найти похожие ветки
← →
Chris (2003-12-03 18:54) [0]Необходимо передать строку в ячейку Excel"я. Использую команду
ExcelDoc.WorkSheets[1].Cells(1, 3):= "Бухгалтерия";
Но из-за каких-то системных настроек в Excel"е появляется строка
← →
AbrosimovA (2003-12-04 08:42) [1]А шрифт ячейки какой?
← →
Chris (2003-12-04 09:29) [2]Допустим, Times New Roman. Хотя, в принципе, разницы нет никакой.
← →
Alex Konshin (2003-12-04 09:29) [3]Переводи строку в UNICODE и результат уже присваимай.
← →
Chris (2003-12-04 11:11) [4]А как пишется функция перевода?
← →
Bers (2003-12-04 15:18) [5]Соответсвие что-то типа:
а \u0430
б \u0431
в \u0432
г \u0433
д \u0434
е \u0435
ж \u0436
з \u0437
и \u0438
й \u0439
к \u043a
л \u043b
м \u043c
н \u043d
о \u043e
п \u043f
р \u0440
с \u0441
т \u0442
у \u0443
ф \u0444
х \u0445
ц \u0446
ч \u0447
ш \u0448
щ \u0449
ъ \u044a
ы \u044b
ь \u044c
э \u044d
ю \u044e
я \u044f
А \u0410
Б \u0411
В \u0412
Г \u0413
Д \u0414
Е \u0415
Ж \u0416
З \u0417
И \u0418
Й \u0419
К \u041a
Л \u041b
М \u041c
Н \u041d
О \u041e
П \u041f
Р \u0420
С \u0421
Т \u0422
У \u0423
Ф \u0424
Х \u0425
Ц \u0426
Ч \u0427
Ш \u0428
Щ \u0429
Ъ \u042a
Ы \u042b
Ь \u042c
Э \u042d
Ю \u042e
Я \u042f
а дальше уж сам... либо функцию придумай либо в массив загони :)
С Уважением, Андрей.
← →
AbrosimovA (2003-12-04 15:33) [6]
> Chris (04.12.03 09:29) [2]
> Допустим, Times New Roman. Хотя, в принципе, разницы нет
> никакой.
Я вопрос не зря задал. К примеру до записи ячейка имеет шрифт Symbol. Ты переключаешь на русскую раскладку и вводишь любое слово. Вопрос на засыпку: Что ты увидишь в ячейке после ввода?
Попробуй вышесказанное проделать в Excel(не программно, а ручками) с Times New Roman, какой в этом случае получишь результат. Возможно ещё предположить, что Times New Roman у тебя без кириллицы.
А шрифт ячеек по-умолчанию в Сервис->Параметры...->Вкладка "Общие"->Стандартный шрифт.
← →
Alex Konshin (2003-12-04 20:29) [7]>Bers (04.12.03 15:18) [5]
>Соответсвие что-то типа:
Ну зачем же так? Есть же функция MultiByteToWideChar.
Там есть засада в том, что нужно Variant с этим полученным значением врукопашную. Насколько я понимаю, реально проблема связана с давно известной проблемой с неправильным выбором codepage при переводе в Unicode в Delphi. Поэтому-то и приходится это делать вручную.
Если сам не сможешь победить, напиши мне на e-mail, я попытаюсь найти дома кусок кода, где я это делал.
← →
VICTOR_ (2003-12-06 12:43) [8]1. Попробуй
ExcelDoc.WorkSheets[1].Cells(1, 3).Font.Name := "Arial CYR";
← →
Black King (2003-12-06 23:17) [9]>VICTOR_ (06.12.03 12:43) [8]
Не поможет ето дело.
Я тоже пытаюсь бороца с етой проблемой, но пока безрезультатно.
Остаётся надеяться, что этот вариант поможет : Alex Konshin © (04.12.03 20:29) [7]
если не, то остаёца запись напрямую в файл без всяких посредников.
← →
Alex Konshin (2003-12-07 18:00) [10]Я не нашел (не помню уже, где я это делал).
Но суть там такая:
const CodePage = 1033;
var v: Variant;
ws : WideString;
len := Length(s);
SetLength(ws,len); // overallocate, trim later
nDestLen := MultiByteToWideChar( CodePage, 0, PChar(s), len, PWideChar(ws), len );
if len<0 then len := 0;
SetLength(ws,len);
v := ws;
Как-то так. Может и наврал где-то, не проверял.
← →
Alex Konshin (2003-12-07 18:02) [11]А наврал в CodePage, для нас должно быть 1251.
← →
nikkie (2003-12-07 18:28) [12]>с давно известной проблемой с неправильным выбором codepage при переводе в Unicode в Delphi
что за проблема - можно поподробнее?
← →
Alex Konshin (2003-12-08 01:22) [13]Проблема в том, что при переводе используется codepage, которая назначена для thread, что не всегда то, что нужно нам.
← →
Artem03 (2003-12-08 10:20) [14]Предлагаю следующее решение проблемы (за 2 года ни одного глюка).
Достучаться до Excel"а, как COM-сервера.
Excel:=CreateOLEObject("Excel.Application");
Excel.WorkSheets.Item[1].Activate; // Активный первый лист
Excel.Cells[Row,Column].Text:="Любой текст"; // Для текста
Excel.Cells[Row,Column].Value:=Value; // Любой тип (дата, число, но только не строка).
← →
BlackKing (2003-12-08 16:01) [15]Artem03 (08.12.03 10:20) [14]
Eto potomu chto na vseh mashinah Region bil Russia. Ustanovi drugoj, budet pervij gljuk za 2 goda :o)
← →
BlackKing (2003-12-08 16:23) [16]Alex Konshin, spasibo tebe ogromnoje!!!
Vsjo rabotajet kak i polozheno:o)
← →
Alex Konshin (2003-12-08 18:22) [17]Еще раз посмотрелна то, что написал, нашел еще ошибку:
len := MultiByteToWideChar( CodePage, 0, PChar(s), len, PWideChar(ws), len );
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c