Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранить из StringGrid в Exel или в CSV. 
:(
    Опции темы
Denwer
Дата 13.10.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 19.6.2007
Где: Харьков

Репутация: нет
Всего: нет



Не подскажите как сохранить из StringGrid в Exel или в CSV.
Смотрел в инете примеры, но они сложноваты. Подскажите, или дайте линк на топик или ресурс. Спасибо.
PM WWW   Вверх
bems
Дата 13.10.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Код

procedure TForm1.Button1Click(Sender: TObject);
var fs:TFileStream;i,j:Integer;s:string;
begin
s:='';
for i:=0 to StringGrid1.ColCount-1 do
 for j:=0 to StringGrid1.RowCount-1 do
  if j=StringGrid1.RowCount-1
     then s:=s+StringGrid1.Cells[i,j]+#13#10
     else s:=s+StringGrid1.Cells[i,j]+ListSeparator;
fs:=TFileStream.Create('c:\csv.csv',fmCreate);
try fs.Write(s[1],Length(s)*SizeOf(s[1]))
finally fs.Free
end;
end;


Это сообщение отредактировал(а) bems - 13.10.2008, 18:09


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Frees
Дата 14.10.2008, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



bemsеще окружать строки нужно кавычками
если в них есть разделитель

примерно вот так
Код

procedure TForm1.Button1Click(Sender: TObject);
var fs: TFileStream; i, j: Integer; s: string;

  function RoundStr(str, sep: string): string;
  begin
    if (pos(sep, str) > 0) or (pos('"', str) > 0) then
    begin
      result := ReplaceStr(str, '"', '""');
      result := '"'+result+'"';
    end
    else
       result := str;
  end;

begin
  s := '';
  for i := 0 to StringGrid1.ColCount - 1 do
    for j := 0 to StringGrid1.RowCount - 1 do
      if j = StringGrid1.RowCount - 1
        then s := s + RoundStr(StringGrid1.Cells[i, j], ListSeparator) + #13#10
      else s := s + RoundStr(StringGrid1.Cells[i, j], ListSeparator) + ListSeparator;
  fs := TFileStream.Create('c:\csv.csv', fmCreate);
  try fs.Write(s[1], Length(s) * SizeOf(s[1]))
  finally fs.Free
  end;
end;

зы код не проверял

Это сообщение отредактировал(а) Frees - 14.10.2008, 07:15


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Albinos_x
Дата 14.10.2008, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 2
Всего: 108



http://forum.vingrad.ru/forum/topic-84634.html
это с раздела Delphi: ActiveX/СОМ/CORBA 
поиск по этому разделу: http://forum.vingrad.ru/index.php?forums=8...ords=StringGrid


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Denwer
Дата 15.10.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 19.6.2007
Где: Харьков

Репутация: нет
Всего: нет



Frees, не пойму почему ругается на строке <<<- result := ReplaceStr(str, '"', '""'); ->>>


bems, норма работает, только вот сохраняет все в строку а не в столбик. Может в где то с индексами... думаю разберусь.
PM WWW   Вверх
Albinos_x
Дата 15.10.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 2
Всего: 108





--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.