Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2016, 18:59   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Работа с файлом xls через Паскаль

Здравствуйте Уважаемые программисты!
Пишу код в паскале.
1) Как присвоить очередной по порядку номер (т.е. 1,2,3,...) для добавляемой новой строки в файле excel? Строки добавляются всегда по порядку с первой строки и не удаляются. Нумерация должна прописываться в первом столбце файла excel. Формат файла xls.
2) Как сохранить файл xls с уникальным именем, например, по текущей дате (primer_24.08.16.xls)? Созданный файл сохранять с датой текущего дня.
Заранее спасибо!
ольгаг вне форума Ответить с цитированием
Старый 24.08.2016, 22:27   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от ольгаг Посмотреть сообщение
Пишу код в паскале.
Сколько написали? Приведите код или исходники
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.08.2016, 07:13   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Код:
var
  cellname_a, cellname_b, cellname_c, cellname_d, cellname_e, cellname_f,
  cellname_g, cellname_h, cellname_i, cellname_j, cellname_k, cellname_l, cellname_m, n: string;
  cellindex: word;
  f: integer;
  result: integer;
const
  FORMAT_CELL_NAME_A = 'A%d';
  FORMAT_CELL_NAME_B = 'B%d';
  FORMAT_CELL_NAME_C = 'C%d';
  FORMAT_CELL_NAME_D = 'D%d';
  FORMAT_CELL_NAME_E = 'E%d';
  FORMAT_CELL_NAME_F = 'F%d';
  FORMAT_CELL_NAME_G = 'G%d';
  FORMAT_CELL_NAME_H = 'H%d';
  FORMAT_CELL_NAME_I = 'I%d';
  FORMAT_CELL_NAME_J = 'J%d';
  FORMAT_CELL_NAME_K = 'K%d';
  FORMAT_CELL_NAME_L = 'L%d';
  FORMAT_CELL_NAME_M = 'M%d';
begin
  try
     result:=Excel.OpenTemplate('C:\Users\Alexej\Desktop\test.xlsx');

     if ((result = 0) or
         ((result = 1) and (Excel.CreateTemplate = 0)))
    then
    begin
         // Создание имен столбцов
         cellindex := 1;
         cellname_a := Format(FORMAT_CELL_NAME_A, [cellindex]);
         cellname_b := Format(FORMAT_CELL_NAME_B, [cellindex]);
         cellname_c := Format(FORMAT_CELL_NAME_C, [cellindex]);
         cellname_d := Format(FORMAT_CELL_NAME_D, [cellindex]);
         cellname_e := Format(FORMAT_CELL_NAME_E, [cellindex]);
         cellname_f := Format(FORMAT_CELL_NAME_F, [cellindex]);
         cellname_g := Format(FORMAT_CELL_NAME_G, [cellindex]);
         cellname_h := Format(FORMAT_CELL_NAME_H, [cellindex]);
         cellname_i := Format(FORMAT_CELL_NAME_I, [cellindex]);
         cellname_j := Format(FORMAT_CELL_NAME_J, [cellindex]);
         cellname_k := Format(FORMAT_CELL_NAME_K, [cellindex]);
         cellname_l := Format(FORMAT_CELL_NAME_L, [cellindex]);
         cellname_m := Format(FORMAT_CELL_NAME_M, [cellindex]);
         Excel.Cell[cellname_a] := '№';
         Excel.Cell[cellname_b] := '№ цеха';
         Excel.Cell[cellname_c] := '№ наряда';
         Excel.Cell[cellname_d] := 'Сплав';
         Excel.Cell[cellname_e] := 'Слиток/партия';
         Excel.Cell[cellname_f] := 'Масса';
         Excel.Cell[cellname_g] := '1-я //';
         Excel.Cell[cellname_h] := '2-я //';
         Excel.Cell[cellname_i] := 'Средн.';
         Excel.Cell[cellname_j] := 'Разрядность';
         Excel.Cell[cellname_k] := 'Число циклов';
         Excel.Cell[cellname_l] := 'Объем контейнера';
         Excel.Cell[cellname_m] := 'Плотность';

         //Выгрузка значения из ячейки Excel в Скаду
         n:=Excel.Cell[cellname_a];
         WriteValue('Вывод1',n);

         //Цикл записи в Excel (Если ячейка занята, то записывается в следующую)
         f:=2;
         while f <= 10 do
         begin
                cellindex := f;
                cellname_a := Format(FORMAT_CELL_NAME_A, [cellindex]);
                n:=Excel.Cell[cellname_a];
                if n = ''
                then
                    begin
                    Excel.Cell[cellname_a] := 'Ок!';
                    f:=11;
                    end
                else
                    begin
                    ShowMessage('Ячейка занята!');
                    f:=f+1;
                    end;

               // WriteValue('Вывод1',f);
         end;

         Excel.Save('C:\Users\Alexej\Desktop\test');   //+ Format(Date,'yyyy/mm/dd')
         Excel.Close;
         ShowMessage('Запись в Excel произведена!');
    end;
  finally
  end;
end.

Последний раз редактировалось Аватар; 25.08.2016 в 07:34.
ольгаг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлом через макросы Bridges Specialist Microsoft Office Excel 10 19.03.2016 19:20
Работа с файлом.Паскаль Sanginow Помощь студентам 1 25.04.2012 19:49
работа с файлом(Паскаль) d1mka_ Помощь студентам 1 12.12.2011 14:22
Паскаль, работа с текстовым файлом!! alfadog Помощь студентам 6 28.10.2009 22:42