+ Ответить в теме
Показано с 1 по 2 из 2

Тема: запись excel

  1. #1
    dummy fcdk_pavel is on a distinguished road
    Регистрация
    13.09.2013
    Сообщений
    3
    Вес репутации
    0

    По умолчанию запись excel

    const

    EXCEL_FILE_EXT = '.xls';


    function TForm7.GetExcelFileName: String;

    begin
    Result := ExtractFilePath(Application.ExeName) + Edit1.Text;
    if LowerCase(ExtractFileExt(Result)) <> EXCEL_FILE_EXT then
    Result := Result + EXCEL_FILE_EXT;
    end;

    procedure TForm7.Button1Click(Sender: TObject);
    var
    ExcelApp, Sheet: variant;
    Col, Row: Word;
    begin
    ExcelApp := CreateOleObject('Excel.Application');

    try
    ExcelApp.Visible := false;
    ExcelApp.Workbooks.Add;
    Sheet := ExcelApp.ActiveWorkbook.Worksheets[1];
    for Col := 0 to StringGrid1.ColCount - 1 do
    for Row := 0 to StringGrid1.RowCount - 1 do
    Sheet.Cells[Row + 1, Col + 1] := StringGrid1.Cells[Col, Row];
    ExcelApp.ActiveWorkbook.SaveAs(GetExcelFileName);
    ShowMessage('Запись завершена!');
    finally
    ExcelApp.Application.Quit;
    ExcelApp := unassigned;

    end;

    end;
    Вот кусок кода который создает файл Экселя(имя файла вводится в Эдит)
    Как сделать так чтобы при следующем расчете программы(в предыдущих модулях) новые расчеты попадали уже в созданный файл(добавление в файл новых результатов расчета) а старые не исчезал(не перезаписывались)???
    Помогите пожалуйста!

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    50
    Сообщений
    2,551
    Вес репутации
    28

    По умолчанию Re: запись excel

    Надо сначала проверить наличие файла, если запрошенный файл существует, то надо делать CreateOleObject от файла, а не от classname.

    Дальше, после

    Sheet := ExcelApp.ActiveWorkbook.Worksheets[1];

    надо найти сколько строк уже заполнено. Например, можно так:

    Shift := Sheet.Cells(1, 1).CurrentRegion.End(-4121).Row;

    Ну и этот Shift надо прибавлять вместо 1 к номеру строки

    Sheet.Cells[Row + Shift, Col + 1] := StringGrid1.Cells[Col, Row];

+ Ответить в теме

Похожие темы

  1. Запись и чтение Excel.
    Здраствуйте. Подскажите как реализировать возможность записывать информацию с полей в лист Excel. После записи, при выборе соответствующего пункта...
    от dimafe6 в разделе Delphi и Pascal
  2. EXCEL-посимвольное считывание(запись) из ячейки.
    В ячейке находится текстовая константа, состоящая из слов(блоков) разного цвета. Задача заключается в том, чтобы заменить отдельные блоки одинакового...
    от anval в разделе MS Office и VB(A).
  3. Как приостановить запись изменений в журнал Excel?
    Подскажите пожалуйста, я работаю в Екселе с файлом общего доступа , при этом все изменения данных в файле пишутся автоматически силами Екселя в...
    от markmg в разделе MS Office и VB(A).
  4. Запись данных из Excel в текстовый файл
    Помогите пожалуйста! Есть данные в ячейках которые распологаются следущим образом: + + + + - - - - При записи этих данных в файл печатается...
    от rit в разделе MS Office и VB(A).
  5. запись данных в файл Excel из VB6.0
    помогите пожалуйста разобраться: как сохранить данные из приложения VB в файл Excel в столбец (напримерА) состоящий из 43200 ячеек, последовательно...
    от ggg в разделе MS Office и VB(A).

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения