Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.08.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
darthnihilus   (2013-09-25 11:43) [0]

Помогите пожалуйста.
Написал прожку, которая данные и стринггрида выводит в ексель. Работаю с ней уже второой год. И вдруг внезапно сегодня пару минут назад прога начала отказываться експортировать данные в ексель. Выдает ошибку типа "нельзя установить свойство sheetsinnewworkbook класса application".

Можете ли что-то посоветовать не видя моего кода? Это обычная ошибка? Или выложить код експорта?


 
brother ©   (2013-09-25 11:47) [1]

> не видя моего кода

кинь кости или ошибка в 17 строке...


 
darthnihilus   (2013-09-25 12:06) [2]

procedure TForm2.btnIntoExcelClick(Sender: TObject);
var
Excel, WorkBook, Sheet: Variant;
i,j,Count,RC:Integer;
SaveTo:string;
begin
btnIntoExcel.Enabled:=False;
if SaveDialog1.Execute then SaveTo:=SaveDialog1.FileName;
Excel := CreateOleObject("Excel.Application");
Excel.SheetsInNewWorkbook :=1;
WorkBook := Excel.WorkBooks.Add;
Excel.Visible:=True;
WorkBook := Excel.WorkBooks.Item[1];
Sheet := Workbook.Sheets.Item[1];
Count:=Form2.Tag;
RC:=Form2.StringGrid1.RowCount-1;
Sheet.Range[Sheet.Cells[1,1],Sheet.Cells[Count,3]].ClearContents;
Sheet.Range[Sheet.Cells[1,1],Sheet.Cells[Count,2]].NumberFormat:= "@";
Sheet.Range[Sheet.Cells[1,3],Sheet.Cells[Count,3]].NumberFormat:="# ##0,00";
 for i:=1 to RC do
   for j:=1 to 2 do
    begin
     Application.ProcessMessages;
     Sheet.Cells.Item[i,j].Value2:=Form2.StringGrid1.Cells[j,i];
    end;
for i:=1 to RC do
    begin
     Application.ProcessMessages;
     Sheet.Cells.Item[i,3].Value2:=StrToFloat(Form2.StringGrid1.Cells[3,i]);
    end;
Excel.DisplayAlerts:=False;
Excel.ActiveWorkbook.SaveAs(SaveTo);
Excel.Quit;
Excel:=Unassigned;
end;


 
никита2013   (2013-09-25 12:56) [3]

Проблема думаю в Экселе. Попробуй переустановить...


 
darthnihilus   (2013-09-25 15:02) [4]

Пробовал :(


 
Кирюха   (2013-09-25 15:40) [5]

Попробуй так: http://www.delphisources.ru/pages/faq/base/sg_to_excel_exp.html


 
darthnihilus   (2013-09-25 16:34) [6]

Попробую - отпишусь.


 
darthnihilus   (2013-09-26 10:39) [7]

Не помогло


 
Кирюха   (2013-09-26 12:25) [8]

Погугли, еще где-то видел по другому экспорт народ делает...


 
[ВладОшин] ©   (2013-09-26 12:35) [9]

procedure ExportAllSG(Sheet: Variant; SG: TStringGrid; BeginRow, BeginCol: Integer; var EndRow, EndCol: Integer);
var
 i, j: Integer;
 ArrayData: Variant;
begin
 EndRow := SG.RowCount + BeginRow;
 EndCol := SG.ColCount + BeginCol;
 ArrayData := VarArrayCreate([1, EndRow + 1, 1, EndCol + 1], varVariant);
 for i := 1 to SG.ColCount  do
  for j := 1 to SG.RowCount  do
   ArrayData[J, I] := SG.Cells[i - 1, j - 1];
 SetValue(Sheet, BeginCol, BeginRow, BeginCol + EndCol, BeginRow + EndRow, ArrayData);
end;

procedure SetValue(Sheet: Variant; BC, BR, EC, ER: Integer; Val: variant);
var
 Cell1, Cell2, Range: Variant;
begin
 Cell1 := Sheet.Cells[BR, BC];
 Cell2 := Sheet.Cells[ER, EC];
 Range := Sheet.Range[Cell1, Cell2];
 Range.Value := Val;
end;

Sheet := WorkBook.WorkSheets[1];


 
NoUser ©   (2013-09-26 23:02) [10]

!!! sheetsinnewworkbook !!!

Заменить
Excel.SheetsInNewWorkbook :=1;
на
for i:=0 to GetTickCount do Application.ProcessMessages;

А если так уж нужен ван шыт то перед
Excel.ActiveWorkbook.SaveAs(SaveTo);
добавить
while WorkBook.WorkSheets.Count>1 do WorkBook.WorkSheets[WorkBook.WorkSheets.Count].Delete;



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

Форум: "Начинающим";
Текущий архив: 2014.08.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
15-1390320023
ошин
2014-01-21 20:00
2014.08.17
ищу фильм. старый


15-1388867402
Юрий
2014-01-05 00:30
2014.08.17
С днем рождения ! 5 января 2014 воскресенье


15-1390138285
brother
2014-01-19 17:31
2014.08.17
сглаживание в фотошопе


15-1389997119
Rouse_
2014-01-18 02:18
2014.08.17
Здравствуйте, я ошибка 217 и я вам ничего не скажу


15-1390163402
Юрий
2014-01-20 00:30
2014.08.17
С днем рождения ! 20 января 2014 понедельник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский