D
Dimafe6
Здраствуйте. Подскажите как реализировать возможность записывать информацию с полей в лист Excel. После записи, при выборе соответствующего пункта меню, производить чтение информации из Excel, с выводом результата в те же поля TEdit.Перемещение по листу Excel осуществлять с помощью SpinEdit. Например у меня на форме находится 12 полей TEdit,3 ComboBox,1 RichEdit.
Перед записью проверять заполненость столбца 1 в Excel, и устанавливать счётчик SpinEdit в положение первой незанятой ячейки столбца 1.
При выборе пункта меню:"Добавить запись" нужно записать информацию со всех полей в лист Excel, и прибавить счётчику SpinEdit единицу, чтобы можно было записать информацию в следующую строчку.
При выборе пункта меню:"Прочитать" нужно выводить информацию по строчкам во все поля. Индексом строчки служит SpinEdit.
Я сделал так:
Вот функция проверки на занятость ячеек столбца 1:
Вот сама запись:
Вот чтение:
Правильно ли я всё ето делаю? Может есть лучший алгоритм?Или проще использовать Access?. Пишу для себя, поетому нужно все сделать как можно проще. Заранее благодарен.
Перед записью проверять заполненость столбца 1 в Excel, и устанавливать счётчик SpinEdit в положение первой незанятой ячейки столбца 1.
При выборе пункта меню:"Добавить запись" нужно записать информацию со всех полей в лист Excel, и прибавить счётчику SpinEdit единицу, чтобы можно было записать информацию в следующую строчку.
При выборе пункта меню:"Прочитать" нужно выводить информацию по строчкам во все поля. Индексом строчки служит SpinEdit.
Я сделал так:
Вот функция проверки на занятость ячеек столбца 1:
Код:
Function NoUsedCells(FindIN:TExcelApplication):integer;
var i,n:integer;
Begin
i:=0;n:=0;
Repeat
i:=i+1;
begin
if FindIN.Cells.Item[i,1].Value<>'' then n:=n+1;
end;
until FindIN.Cells.Item[i,1].Value='';
n:=n-1;
Result:=n;
end;
Код:
"Добавить запись":
...
IndexCur:=NoUsedCells(ExcelApplication1); //присваиваю начальную позицию для записи
ExcelApplication1.Cells.Item[IndexCur,1].Value:=Edit1.Text; //записываю значение полей
...//записываю значение полей
ExcelApplication1.Cells.Item[IndexCur,1].Value:=Edit12.Text; //записываю значение полей
SpinEdit1.Value:=SpinEdit1.Value+1;
ExcelApplication1.ActiveWorkbook.Close(True,FExcel,False,0); //закрываю и сохраняю книгу
Код:
"Прочитать":
Edit1.Text:=ExcelApplication1.Cells.Item[SpinEdit1.Value,1].Value;//читаю
... //читаю
Edit12.Text:=ExcelApplication1.Cells.Item[SpinEdit1.Value,1].Value; //читаю
ExcelApplication1.ActiveWorkbook.Close(True,FExcel,False,0); //закрываю и сохраняю книгу