Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

из Delphi в Excel   Найти похожие ветки 

 
olookin ©   (2003-01-31 17:35) [0]

Здравствуйте.
Как передать из Делфи в Эксел строку с русскими символами?

Заранее спасибо.


 
ef2000   (2003-01-31 17:39) [1]

так же как с латинскими или что-то не так?


 
olookin ©   (2003-01-31 18:07) [2]

to ef2000 нет не так абсолютно. Не передается.


 
Chubais ©   (2003-01-31 18:46) [3]


> Не передается.

как это понимать? чо - совсем ничо не передается?


 
Cr@sh ©   (2003-01-31 21:07) [4]

procedure TForm1.BitBtnToExcelOnClick(Sender: TObject);
var
WorkBk : _WorkBook; // определяем WorkBook
WorkSheet : _WorkSheet; // определяем WorkSheet
I, J, K, R, C : Integer;
IIndex : OleVariant;
TabGrid : Variant;
begin
if GenericStringGrid.Cells[0,1] <> "" then
begin
IIndex := 1;
R := GenericStringGrid.RowCount;
C := GenericStringGrid.ColCount;
// Создаём массив-матрицу
TabGrid := VarArrayCreate([0,(R - 1),0,(C - 1)],VarOleStr);
I := 0;
// Определяем цикл для заполнения массива-матрицы
repeat
for J := 0 to (C - 1) do
TabGrid[I,J] := GenericStringGrid.Cells[J,I];
Inc(I,1);
until
I > (R - 1);

// Соединяемся с сервером TExcelApplication
XLApp.Connect;
// Добавляем WorkBooks в ExcelApplication
XLApp.WorkBooks.Add(xlWBatWorkSheet,0);
// Выбираем первую WorkBook
WorkBk := XLApp.WorkBooks.Item[IIndex];
// Определяем первый WorkSheet
WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
// Сопоставляем Delphi массив-матрицу с матрицей в WorkSheet
Worksheet.Range["A1",Worksheet.Cells.Item[R,C]].Value := TabGrid;
// Заполняем свойства WorkSheet
WorkSheet.Name := "Customers";
Worksheet.Columns.Font.Bold := True;
Worksheet.Columns.HorizontalAlignment := xlRight;
WorkSheet.Columns.ColumnWidth := 14;
// Заполняем всю первую колонку
WorkSheet.Range["A" + IntToStr(1),"A" + IntToStr(R)].Font.Color := clBlue;
WorkSheet.Range["A" + IntToStr(1),"A" + IntToStr(R)].HorizontalAlignment := xlHAlignLeft;
WorkSheet.Range["A" + IntToStr(1),"A" + IntToStr(R)].ColumnWidth := 31;
// Показываем Excel
XLApp.Visible[0] := True;
// Разрываем связь с сервером
XLApp.Disconnect;
// Unassign the Delphi Variant Matrix
TabGrid := Unassigned;
end;
end;


 
olookin ©   (2003-02-01 12:39) [5]

to Crash/
Спасибо за развернутый пример, но я уже реализовал взаимодействие с Excel.

Для всех...

Я ошибался, считая что русские символы вообще не передаются. Они передаются (как и все остальные), но в количестве не более чем 255 символов в строке. У меня же строка содержит 2048 символов. В итоге при передаче длинной строки в TextFrame она то ли обрезается, то ли еще что то. В общем, в отличие от коротких, длинная строка не отображается в TextFrame. Как быть? Заранее спасибо.


 
olookin ©   (2003-02-01 13:55) [6]

Пожалуйста, ответьте.... Кто знает ответ, конечно


 
Tux   (2003-02-01 14:37) [7]

Млин... WideString ом строки передавай, юникод ведь как-никак...


 
olookin ©   (2003-02-01 14:55) [8]

To TUX

не помогает я уже пробовал. Похоже в Excel либо другая кодировка либо еще что то



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
1-28885
thick
2003-01-30 16:03
2003.02.10
initialization ???


3-28589
Ahmad K
2003-01-25 02:25
2003.02.10
Графическая база


1-28741
Alpine
2003-01-31 23:33
2003.02.10
Как и с помощью чего лучше строить графики (векторы,треугольники)


1-28791
Blacked
2003-02-01 01:23
2003.02.10
Как поместить Форму на TabSheet?


4-29164
BlackSun
2002-12-29 00:34
2003.02.10
Обращение к винту