Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
Внизформатирование ячеек в excel Найти похожие ветки
← →
rosl (2003-05-13 03:27) [0]Как програмно произвести форматирование ячеек в excel (например сделать ячейку в текстовом формате, изменить ширину столбца и т.д.)
← →
Татьяна (2003-05-13 08:37) [1]Когда-то давно занималась этой проблемой, вот кусочек кода,
наверное можно делать и как-то по-другому, это просто как вариант
ответа на твой вопрос.
procedure TFMenu21.RadioButton5Click(Sender: TObject);
const
xlCenter=-4108;
XLWBatWorksheet=-4167;// для создания книги с одной страницей
Var
xl : OleVariant;
x,i,first : integer; // first для переименования страницы с именем "Лист1"
x1,y1 : integer; // для выделения диапазона в Excel
begin
try
// Excel уже запущен?
xl:=GetActiveOleObject("Excel.Application");
ShowMessage("У Вас уже загружен Excel.Завершите его работу, а затем повторите вывод");
xl.Application.WindowState:=-4137;
//xl.Visible:=True;
xl.Quit;
xl:=Unassigned;
Exit;
except
// Hет, еще нет...
xl:=CreateOleObject("Excel.Application");
end;
xl.Workbooks.Add[XLWBatWorksheet];
// xl.Visible:=True;
first:=1;
x1:=0;
Y1:=0;
For i:=3 downto 1 do begin
x:=2;
if first=0 then xl.Workbooks[1].Worksheets.Add else first:=0;
If i=1 then
begin
xl.Range[xl.Cells[x,2],xl.Cells[x+1,14]].MergeCells:=True; // объединение ячеек
xl.Range[xl.Cells[x,2],xl.Cells[x+1,14]].WrapText:=True; // перенос текста
xl.Workbooks[1].Worksheets[1].Name:="имя страницы";
// Вывожу какую-то шапку таблицы
x:=x+1;
xl.Range[xl.Cells[x,2],xl.Cells[x+2,2]].MergeCells:=True; // объединение ячеек
xl.Cells[x,2]:="столбик 1";
xl.Range[xl.Cells[x,3],xl.Cells[x+1,4]].MergeCells:=True; // объединение ячеек
xl.Cells[x,3]:="столбик 2";
// Вывожу данные из Ttable (DM.TsvodD1) в Excel
DM.TSvodD1.Open;
DM.TSvodD1.First;
x1:=x; // запоминаю начальную строку
While not DM.TSvodD1.Eof do
begin
xl.Workbooks[1].WorkSheets[1].Activate;
xl.ActiveWindow.DisplayZeros:=False; // не показывать нули
xl.ActiveWindow.DisplayGridlines:=False; // не показывать сетку
// жирный шрифт xl.Range[xl.Cells[x,2],xl.Cells[x,2]].Font.Bold:=True;
xl.Cells[x,2]:=DM.TSvodD1F.Value;
if DM.TSvodD1T.Value=1 then xl.Cells[x,3]:="< 0.2";
if DM.TSvodD1T.Value=2 then xl.Cells[x,3]:="0.2-0.3";
// if DM.TSvodD1T.Value=3 then xl.Cells[x,3]:="> 0.3";
if DM.TSvodD1T.Value=3 then xl.Cells[x,3]:=" 0.5 ";
xl.Cells[x,4]:=DM.TSvodD1M.Value;
xl.Range[xl.Cells[x,7],xl.Cells[x,7]].NumberFormat:="@"; // установка текстового формата для ячейки
xl.Cells[x,14]:=DM.TSvodD1Proc.Value;
x:=x+1;
DM.TSvodD1.Next;
end; // while not TSvodD1.Eof
y1:=x-1; // запоминаю конечную строку
// вывожу итоги
xl.Workbooks[1].WorkSheets[1].Rows.Rows[x].RowHeight:=44.25; // высота строки
xl.Range[xl.Cells[x,2],xl.Cells[x,14]].WrapText:=True;
// Форматирую
xl.Workbooks[1].worksheets[1].Range[xl.Cells[1,2],xl.Cells[x,14]].VerticalAlignment:=2;
xl.Workbooks[1].worksheets[1].Range[xl.Cells[x-3,2],xl.Cells[x,14]].HorizontalAlignment:=xlCenter; // выводить в центре ячейки
xl.Workbooks[1].worksheets[1].Range[xl.Cells[x-3,2],xl.Cells[x,14]].Font.Bold:=True;
xl.Workbooks[1].worksheets[1].Range[xl.Cells[x-3,3],xl.Cells[x-3,14]].Borders.Weight := 2;
// устанавливаю ширину колонок
xl.Workbooks[1].worksheets[1].Columns.Columns[1].ColumnWidth:=2.43;
// границы ячейки
xl.Workbooks[1].worksheets[1].Range[xl.Cells[x1,2],xl.Cells[y1,2]].NumberFormat:="0,0";
xl.Range[xl.Cells[x1,4],xl.Cells[y1,4]].NumberFormat:="0,0";
xl.Visible:=True;
← →
Валера (2003-05-13 09:14) [2]Можно сделать проще, запусти Excel, запусти запись макроса и делай что тебе нужно, то как ворматирование текста, установка ширины ячейки, да всё что угодно, а потом смотри что он там на генерировал в Visual Basice .....
← →
Соловьев (2003-05-13 09:25) [3]
> Валера (13.05.03 09:14
классный способ, я так тоже делаю, но надо учесть что код на VB будет отличаться: списком перемменных, обьектов и свойств, которые доступны в Delphi. Но там труда большего не составит разобраться что к чему...
← →
rosl (2003-05-13 09:32) [4]Спасибо Татьяна, попробую.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c