:: MVP ::
|
|
:: RSS ::
|
|
|
Как получить значение диапазона ячеек из Excel?
var
E: OleVariant;
procedure TForm1.Button1Click(Sender: TObject);
var
Arr: OleVariant;
begin
Arr := E.ActiveWorkBook.WorkSheets[1].Range['A1:D4'].Value;
if VarIsArray(Arr) then
begin
for i := VarArrayLowBound(Arr, 1) to VarArrayHighBound(Arr, 1) do
for j := VarArrayLowBound(Arr, 2) to VarArrayHighBound(Arr, 2) do
ShowMessage(Arr[i, j]);
end;
VarClear(Arr);
end;
|
Как подогнать ширину столбца/столбцов под содержимое?
var
E: OleVariant;
// Для одного столбца
procedure TForm1.Button1Click(Sender: TObject);
begin
E.ActiveWorkBook.WorkSheets[1].Range['A1'].EntireColumn.AutoFit;
end;
// Для нескольких столбцов
procedure TForm1.Button2Click(Sender: TObject);
begin
E.ActiveWorkBook.WorkSheets[1].Range['A1:D4'].Columns.AutoFit;
end;
|
Как подогнать высоту строки/строк под содержимое?
var
E: OleVariant;
// Для одной строки
procedure TForm1.Button1Click(Sender: TObject);
begin
E.ActiveWorkBook.WorkSheets[1].Range['A1'].EntireRow.AutoFit;
end;
// Для нескольких строк
procedure TForm1.Button2Click(Sender: TObject);
begin
E.ActiveWorkBook.WorkSheets[1].Range['A1:D4'].Rows.AutoFit;
end;
|
Как автоматически заполнить строку в Excel'е?
uses
{..., Excel_TLB,} ActiveX;
// Constants for enum XlAutoFillType
type
XlAutoFillType = TOleEnum;
const
xlFillCopy = $00000001;
xlFillDays = $00000005;
xlFillDefault = $00000000;
xlFillFormats = $00000003;
xlFillMonths = $00000007;
xlFillSeries = $00000002;
xlFillValues = $00000004;
xlFillWeekdays = $00000006;
xlFillYears = $00000008;
xlGrowthTrend = $0000000A;
xlLinearTrend = $00000009;
var
E: OleVariant;
// AutoFill будет работать, если в Range включить и копируемую строку, т.е.
// Sheet.Range['A20:T20', EmptyParam].AutoFill(Sheet.Range['A20:T25', EmptyParam], xlFillCopy);
// Т.е. 'A20:T20' - копируемая строка, 'A20:T25' - копируем в 5 след. строк, строка образец
// в этот диапозон тоже включена.
//
// XL.Range['исходный диапазон, т.е. та ячейка/ки, откуда ты берешь значение', EmptyParam].AutoFill
// (XL.Range['тот диапазон, который ты хочешь заполнить включая исодные ячейки', EmptyParam], xlFillDefault);
procedure TForm1.Button1Click(Sender: TObject);
begin
E.Cells[1,2].Value := 1;
E.Cells[2,2].Value := 2;
E.Range['B1:B2'].Select;
E.Selection.AutoFill(E.Range['B1:B10'], xlFillSeries);
end;
// Кроме того можно воспользоватся методами
// FillLeft, FillRight, FillUp, FillDown
// соблюдая описанное выше правило
procedure TForm1.Button2Click(Sender: TObject);
begin
E.Sheets[1].Range['C3'].Value := 1;
E.Sheets[1].Range['C3:A3'].FillLeft;
E.Sheets[1].Range['C3:E3'].FillRight;
E.Sheets[1].Range['C3:C1'].FillUp;
E.Sheets[1].Range['C3:C5'].FillDown;
end;
|
Как записать массив значений в Excel?
var
E: OleVariant;
procedure TForm1.Button1Click(Sender: TObject);
var
Arr: OleVariant;
begin
Arr := VarArrayCreate([0, 3, 0, 3], varVariant);
for i := VarArrayLowBound(Arr, 1) to VarArrayHighBound(Arr, 1) do
for j := VarArrayLowBound(Arr, 2) to VarArrayHighBound(Arr, 2) do
case i of
0: Arr[j, i] := (i+1) * j; // Целые значения
1: Arr[j, i] := i / (j+1); // Дробные значения
2: Arr[j, i] := 'Строка ' + IntToStr(j); // Строковые значения
3: Arr[j, i] := Now; // Дата/время
end;
E.ActiveWorkBook.WorkSheets[1].Range['A1:D4'] := Arr;
VarClear(Arr);
end;
|
Как отформатировать текст в Excel?
var
E: OleVariant;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Форматирование текста в строках
E.WorkSheets[1].Rows[1].Font.Bold := True; // жирный
E.WorkSheets[1].Rows[2].Font.Color := clRed; // цвет красный
E.WorkSheets[1].Rows[3].Font.Size := 14; // размер 12
E.WorkSheets[1].Rows[4].Font.Name := 'Courier'; //шрифт
// Форматирование текста в колонках
E.WorkSheets[1].Columns[1].Font.Bold := True; //жирный
E.WorkSheets[1].Columns[2].Font.Color := clRed; // цвет красный
E.WorkSheets[1].Columns[3].Font.Size := 14; //размер 12
E.WorkSheets[1].Columns[4].Font.Name := 'Courier'; //шрифт
// Форматирование текста в ячейках
E.WorkSheets[1].Cells[1, 1].Font.Bold := True; //жирный
E.WorkSheets[1].Cells[1, 2].Font.Color := clRed; // цвет красный
E.WorkSheets[1].Cells[1, 3].Font.Size := 14; //размер 12
E.WorkSheets[1].Cells[1, 4].Font.Name := 'Courier'; //шрифт
end;
|
Как задать формат числа в Excel?
var
E: OleVariant;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Задаем формат числа для строки
E{.WorkBooks[1]}.WorkSheets[1].Rows[1].NumberFormat := '0,0';
// Задаем формат числа для колонки
E{.WorkBooks[1]}.WorkSheets[1].Columns[1].NumberFormat := '0,00';
// Задаем формат числа для ячейки
E{.WorkBooks[1]}.WorkSheets[1].Cells[2, 2].NumberFormat := '0,000';
end;
|
Как повернуть текст на заданный угол?
var
E: OleVariant;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Поворот текста в первой строке
E{.WorkBooks[1]}.WorkSheets[1].Rows[1].Orientation := 90;
// Поворот текста в первом столбце
E{.WorkBooks[1]}.WorkSheets[1].Columns[1].Orientation := 45;
// Поворот текста в диапазоне ячеек
E{.WorkBooks[1]}.WorkSheets[1].Range['A1:D4'].Orientation := -45;
end;
|
При использовании материала - ссылка на сайт обязательна
|
|