Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2019, 11:49   #1
dsbv
Пользователь
 
Регистрация: 21.03.2019
Сообщений: 20
По умолчанию Оформление в Excel, непонятные символы

Заполняю документ Exel из ListView и в Exel появляются какие то непонятные символы. Не могу понять как с этим бороться.
Строки такие:
ListView2.Items.Item[i].Caption=ключ_рожково-накидной,_24мм,_матовый

пробую вырезать
Код:
ListView.Items.Item[i].Caption:=StringReplace(ListView.Items.Item[i].Caption, '_', ' ', [rfReplaceAll, rfIgnoreCase]);
В Exel все равно печатаются какие то квадратики
dsbv вне форума Ответить с цитированием
Старый 25.03.2019, 12:10   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от dsbv Посмотреть сообщение
В Exel все равно печатаются какие то квадратики
я заголовок темы исправил. Может быть, зря? Exel или всё же - Excel ?

p.s.тут явно с кодировкой беда. И нет кода, как и что Вы выводите собственно в Excel
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.03.2019, 12:26   #3
dsbv
Пользователь
 
Регистрация: 21.03.2019
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я заголовок темы исправил. Может быть, зря? Exel или всё же - Excel ?

p.s.тут явно с кодировкой беда. И нет кода, как и что Вы выводите собственно в Excel
Опечатался Excel
Вот код вывода
Код:
var
  exApp, exBook, exSh, exRng : OleVariant;
  Colum:Variant;
  i_str:Integer;
//////////////////////


    try
    exApp := CreateOleObject('Excel.Application');
  except
    MessageBox(Handle, 'Не удалось запустить MS Excel.', MB_OK + MB_ICONERROR + MB_APPLMODAL);
    Exit;
  end;
  exApp.Application.EnableEvents := false;
  exApp.Visible := True;         
  exBook := exApp.WorkBooks.Add; 
  exSh := exBook.Worksheets[1];
           exSh.Cells[3, 1].Value := 'наименование';
           exSh.Cells[3, 2].Value := 'ед.изм.';
           exSh.Cells[3, 3].Value := 'кол-во';
           exSh.Cells[3, 4].Value := 'цена';
           exSh.Cells[3, 5].Value := 'сумма';
for i := 0 to ListView2.Items.Count - 1 do 
 begin
    ListView2.Items.Item[i].Caption:=StringReplace(ListView2.Items.Item[i].Caption, '_', ' ', [rfReplaceAll, rfIgnoreCase]);
    ListView2.Items.Item[i].SubItems.Strings[0]:=StringReplace(ListView2.Items.Item[i].SubItems.Strings[0], '_', ' ', [rfReplaceAll, rfIgnoreCase]);
    i_str:=i+3;
    exSh.Cells[i_str+1, 1].Value := ListView2.Items.Item[i].Caption;//наименование
    exSh.Cells[i_str+1, 2].Value := ListView2.Items.Item[i].SubItems.Strings[3];//ед.изм.
    exSh.Cells[i_str+1, 3].Value := ListView2.Items.Item[i].SubItems.Strings[2];// кол-во
    exSh.Cells[i_str+1, 4].Value := ListView2.Items.Item[i].SubItems.Strings[1];// цена
    exSh.Cells[i_str+1, 5].Value := ListView2.Items.Item[i].SubItems.Strings[4];// сумма
 end;
 exRng:=exApp.ActiveWorkBook.ActiveSheet.Range[exSh.Cells.Item[3, 1], exSh.Cells.Item[i_str+1,5]];
 // оформление
  exApp.ActiveWorkBook.ActiveSheet.PageSetup.LeftMargin := 30;
  exApp.ActiveWorkBook.ActiveSheet.PageSetup.RightMargin := 10;
  exApp.ActiveWorkBook.ActiveSheet.PageSetup.TopMargin := 20;
  exApp.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleColumns := '$A:$I';
  exApp.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleRows := '$2:$2'; // Печатать шапку таблицы на каждом листе

  exRng.Rows[1].Font.Bold := True;
  exRng.Borders.LineStyle := 1; 
  exRng.Borders.Weight := 2; 
  exRng.Columns.HorizontalAlignment := 3;
  exRng.Columns.VerticalAlignment:= 2;
 
 exRng := Unassigned;
 exSh := Unassigned;
 exApp := Unassigned;
dsbv вне форума Ответить с цитированием
Старый 25.03.2019, 12:59   #4
dsbv
Пользователь
 
Регистрация: 21.03.2019
Сообщений: 20
По умолчанию

Нашел причину методом тыка, удалил из строки символы #13#10 и все пришло в норму. Не понятно от куда взялся перевод каретки в строке, ListView чтоль сам косячит?
Целый день потраченного времени(((
dsbv вне форума Ответить с цитированием
Старый 26.03.2019, 13:05   #5
leoparrd
Заблокирован
 
Регистрация: 27.08.2010
Сообщений: 37
По умолчанию

А зачем собственно огород городить. Не проще было бы составить файл таблицы а потом открыть его в Excel?
PS
Кстати про название. Excel переводится ка расширенная ячейка.
leoparrd вне форума Ответить с цитированием
Старый 28.03.2019, 14:25   #6
dsbv
Пользователь
 
Регистрация: 21.03.2019
Сообщений: 20
По умолчанию

Цитата:
Сообщение от leoparrd Посмотреть сообщение
А зачем собственно огород городить. Не проще было бы составить файл таблицы а потом открыть его в Excel?
PS
Кстати про название. Excel переводится ка расширенная ячейка.
Что Вы имели ввиду под "составить файл таблицы" ?
Мне нужно, чтоб было видно какими данными заполняется ListView. От этого и плясал
dsbv вне форума Ответить с цитированием
Старый 03.04.2019, 23:29   #7
leoparrd
Заблокирован
 
Регистрация: 27.08.2010
Сообщений: 37
По умолчанию

Я имел в виду что вы работаете с объектной моделью excel через Delphi
И предложил ликвидировать эту модель, как ненужную.
Вместо этого составить из данных вашего списка, файл, который откроется в Excel в виде готовой таблицы, ну а сам документ дооформить простейшим макросом.
В этом способе есть свои преимущества, о которых говорить трудно, не зная что вы там делаете и для чего это вообще нужно. Я вообще противник навороченных компонентов и если мне нужно составить документ для офисных систем или прочих прог, я попросту пишу сам документ и открываю его, где нужно.
leoparrd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
*непонятные символы vk.com97@yandex.ru Операционные системы общие вопросы 3 04.02.2017 08:43
idhttp непонятные символы перед ответом aesoem Общие вопросы Delphi 4 19.09.2016 21:48
Непонятные символы Кристинка89 Общие вопросы Delphi 7 08.09.2011 02:47
Непонятные символы. Как убрать? Kashp Microsoft Office Word 2 25.05.2011 11:09
непонятные символы XATAB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 28.12.2007 11:23