Главная страница
    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.003 c
2-1380363106
Jimmy
2013-09-28 14:11
2014.08.17
Масштабирование TMetaFile


15-1389972997
Пит
2014-01-17 19:36
2014.08.17
Вот говорят, что дельфи не умирает


15-1390391993
Novicer
2014-01-22 15:59
2014.08.17
Как узнать дату создания Биоса в Восьмерке?


15-1390314583
SKIPtr
2014-01-21 18:29
2014.08.17
как написать задание для планировщика


2-1380252356
FIL-23
2013-09-27 07:25
2014.08.17
delphi+powershell





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский