Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
#1

функция которая сохраняет из StringGrid в Excel - Delphi

24.04.2010, 13:39. Просмотров 1186. Ответов 2
Метки нет (Все метки)

У меня есть функция которая сохраняет из StringGrid в Excel.
Но оно сохраняет без запятых то есть если число 6,22 то оно его сохраняет как 6 22 подскажите где что-то не так!
Вот сама функция
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function SaveAsExcel(stringgrid: tstringgrid; filename: string): boolean;
 const
 xlwbatworksheet = -4167;
var
  row, col: integer;
  xlapp, sheet: olevariant;
begin
  result := false;
  xlapp := createoleobject('excel.application');
  try
  xlapp.visible := false;
  xlapp.workbooks.add(xlwbatworksheet);
  sheet := xlapp.workbooks[1].worksheets[1];
  sheet.name := 'Лист_1';
  for col := 1 to stringgrid.colcount  do
   for row := 1 to stringgrid.rowcount do
   sheet.cells[row , col ] := stringgrid.cells[col, row];
  try
  xlapp.workbooks[1].saveas(FileName);
  result := true;
  except
// error ?
  end;
  finally
  if not varisempty(xlapp) then
   begin
    xlapp.displayalerts := false;
    xlapp.quit;
    xlapp := unassigned;
    sheet := unassigned;
   end;
 end;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2010, 13:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос функция которая сохраняет из StringGrid в Excel (Delphi):

Написать программу, которая копирует текст из файла изменяет и сохраняет обратно в файл - Delphi
Здравствуйте, не могли бы вы пожалуйста помочь, и написать такую вот программу: P.s. сам я очень плохо знаю Делфи... Заранее спасибо) ...

StringGrid + Excel - Delphi
Как мне можно вывести в StringGrid с Excel? Как мне можно вывести в Excel с StringGrid ?

из StringGrid в Excel - Delphi
Есть код: procedure TForm1.Button1Click(Sender: TObject); var sr: TSearchRec; a,b,i,j,d,z: Longint; st1,st2,st3,st4: String; L...

Функция и матрицы StringGrid - Delphi
1. Описать функцию, которая возвращает среднее геометрическое значение ненулевых цифр, входящих в запись числа типа Longint. 2. Даны...

Загрузка из Excel в StringGrid - Delphi
В этом проекте реализовать Загрузку из Excel в StringGrid https://drive.google.com/file/d/0B6KmFeiJ5XiIYk90NmpneGxFXzA/view .Это нужно...

Сохранение StringGrid в MS Excel - Delphi
Здраствуйте. Имеется функция сохранения StringGrid в MS Excel. Работает, все хорошо, но хотел бы в ней разобраться. Может кто нибудь...

2
NobodyElseButMe
6 / 6 / 0
Регистрация: 07.02.2010
Сообщений: 33
24.04.2010, 13:41 #2
ИМХО, формат ячеек надо изменить
1
sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
24.04.2010, 15:34  [ТС] #3
А можно поточней где и что поменять??

Добавлено через 1 час 44 минуты
Все спасибо тем кто откликнулся. Я нашел другую функцию с ее помощью я избавился от данной ошибки!!
Вот эти функции!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function RefToCell(ARow, ACol: Integer): string;
 begin
  Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
 end;
function SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: string): Boolean;
 const
  xlWBATWorksheet = -4167;
 var
  Row, Col: Integer;
  GridPrevFile: string;
  XLApp, Sheet, Data: OLEVariant;
  i, j: Integer;
 begin
  // Prepare Data
 Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
  for i := 1 to AGrid.ColCount  do
  for j := 1 to AGrid.RowCount  do
  Data[j , i ] := AGrid.Cells[i, j];
  // Create Excel-OLE Object
 Result := False;
  XLApp := CreateOleObject('Excel.Application');
  try
  // Hide Excel
  XLApp.Visible := False;
  // Add new Workbook
  XLApp.Workbooks.Add(xlWBatWorkSheet);
  Sheet := XLApp.Workbooks[1].WorkSheets[1];
  Sheet.Name := ASheetName;
  // Fill up the sheet
  Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,
  AGrid.ColCount)].Value := Data;
  // Save Excel Worksheet
  try
  XLApp.Workbooks[1].SaveAs(AFileName);
  Result := True;
  except
  // Error ?
  end;
  finally
  // Quit Excel
  if not VarIsEmpty(XLApp) then
  begin
  XLApp.DisplayAlerts := False;
  XLApp.Quit;
  XLAPP := Unassigned;
  Sheet := Unassigned;
  end;
  end;
 end;
 // Example:
procedure TForm1.ButtonSaveClick(Sender: TObject);
 begin
  if SaveAsExcelFile(mainStrGrid, 'Лист_1', 'c:\MyExcelFile.xls') then
  ShowMessage('StringGrid saved!');
 end;
Тут сохранение происходит правильно!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2010, 15:34
Привет! Вот еще темы с ответами:

Экспорт StringGrid в Excel - Delphi
Всем привет. Нужно экспортировать StringGrid в Exel состоящий из 8-ми столбцов Нужно чтобы вот это в начале добавлялось в Exel ...

из файла excel в stringgrid - Delphi
Доброго времени суток!!! Подскажите пожалуйста как сделать загрузку из файла excel и stringgrid? так чтобы названия столбцов были в...

Stringgrid и Excel таблицы - Delphi
Добрый день, уважаемые форумчане. Я написал программу, которая импортирует эксель таблицы в стринггрид, но вот одна проблема... Таблица...

Экспорт из Excel в StringGrid - Delphi
Добрый день, граждане! Пожалуйста подскажите каким образом реализовать экспорт текстовой таблицы из Excel в StringGrid. Использую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru