Компонент delphi StringGrid предназначен для отображения данных в табличной форме, при размещении его на форме он принимает вид изображенным на рисунке 1.
Из названия следует что в ячейках компонента StringGrid могут содержаться данные, типа String, и отображать графику. Таблица StringGrid может быть только для чтения и редактирования, и состоит из выделенных серым зафиксированных ячеек-заголовков (FixedCols и FixedRows) недоступных для редактирования (меняется только программно), и белых ячеек имеющие возможность редактирования благодаря свойству Options. Для доступа к ячейкам программно используется StringGrid1.Cells[i, j] где i — номер столбца, а j — номер строки.
А для доступа к выделенным ячейкам используется S:=StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row]; где StringGrid1.Col — номер столбца, StringGrid1.Row — номер строки, s — данные выделенной ячейки.
Иногда нам необходимо загрузить данные из Excel для такой возможности необходимо добавить в uses модуль ComObj, далее описать глобальную перемененную типа Variant:
var Excel: Variant;
Далее, нам нужно создать объект Excel. Так как Excell Application создаётся пустым то необходимо добавить хотя бы одну книгу. Делаем это все в каком нибудь обработчике например в OnCreate формы Excel:=CreateOleObject(‘Excel.Application’); Excel.Application.WorkBooks.Add(‘ИмяФайла.xls’);
Теперь получаем данные из Excel. Следует обратить внимание на то, что в Delphi первым в индексе стоит номер столбца, а в Excel номер строки, то индексы должны располагаться на противоположных местах. Для получения данных из Excel в обработчике например нажатия кнопки вписываем код
with StringGrid1 do
for i:=1 to RowCount-1 do
for j:=1 to ColCount-1 do
Cells[j, i]:=Excel.WorkSheets.Item[‘Лист1’].Cells[i, j];
Для записи наших данных из таблицы StringGrid в Excel нужно воспользоваться другим кодом
for i:=1 to Grid.RowCount-1 do
for j:=1 to Grid.ColCount-1 do
Excel.WorkSheets.Item[‘Лист1’].Cells[i, j]:=Grid.Cells[j, i];
Ну естественно если нужно сохранить данные внесенные в таблицу Excel то дописываем
Excel.ActiveWorkbook.SaveAs(‘ИмяФайла’);
Свойства StringGrid
ColCount | количество колонок в таблице | ||||||||||||||||||||||||||||||
RowCount | количество строк в таблице | ||||||||||||||||||||||||||||||
DefaultColWidth | ширина колонок в таблице | ||||||||||||||||||||||||||||||
DefaultRowHeight | высота строк в таблице | ||||||||||||||||||||||||||||||
FixedCols | количество зафиксированных колонок слева таблицы | ||||||||||||||||||||||||||||||
FixedRows | количество зафиксированных колонок сверху таблицы | ||||||||||||||||||||||||||||||
Cells | двумерный массив. Ячеек таблицы, находящихся на пересечении столбца(col) и строки(row)соответствует элементу cells[col, row] | ||||||||||||||||||||||||||||||
GridLineWidth | ширина линии ограничивающиая ячейки таблицы | ||||||||||||||||||||||||||||||
Options | если значение элементов описанных ниже равно True, то они присутствует, если False — то нет
|
||||||||||||||||||||||||||||||
Font | Шрифт отображения содержимого ячеек |
Что бы управлять программно под свойствами свойства option необходимо использовать
StringGrid1.Options:=StringGrid1.Options+[имя под свойств свойства Option]; включает
StringGrid1.Options:=StringGrid1.Options-[имя под свойств свойства Option]; Выключает
для включения сразу нескольких подсвойств необходимо использовать
StringGrid1.Options:=[список под свойств свойства Option разделенных между собой запятой];