Карта сайтаСсылкиКонтакты

Как защитить лист Excel

PDF Печать
Статьи

Ниже приводится программа, полный пример, ак защитить Excel Sheet, используя Delphi.


unit UTesteProtect;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, ComObj; 

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ExcelApp: OleVariant;



implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
const
  // SheetType
  xlChart = -4109;
  xlWorksheet = -4167;
  // WBATemplate
  xlWBATWorksheet = -4167;
  xlWBATChart = -4109;
  // Page Setup
  xlPortrait = 1;
  xlLandscape = 2;
  xlPaperA4 = 9;
  // Format Cells
  xlBottom = -4107;
  xlLeft = -4131;
  xlRight = -4152;
  xlTop = -4160;
  // Text Alignment
  xlHAlignCenter = -4108;
  xlVAlignCenter = -4108;
  // Cell Borders
  xlThick = 4;
  xlThin = 2;
var
  ColumnRange: OleVariant;

begin
  { Start Excel }

  // Используя GetActiveOleObject, Вы используете экземпляр 
  // Word, который это выполняет, если запущен
    try
      // Если Word не запущен, попытаемся создать новый объект Excel
      ExcelApp := CreateOleObject('Excel.Application');
    except
      ShowMessage('Cannot start Excel/Excel not installed ?');
      Exit;
    end;

  // Добавляем новый Workbook
  ExcelApp.Workbooks.Add(xlWBatWorkSheet); 

  // Открываем Workbook
  ExcelApp.Workbooks.Open('c:\pasta1.xls');


  // Переименовываем активный Sheet
  ExcelApp.ActiveSheet.Name := 'Pasta1';

  // Переименование
  ExcelApp.Workbooks[1].WorkSheets[1].Name := 'Pasta1';

  // Вставим текск в Cells[Row,Col]
  ExcelApp.Cells[1, 1].Value := 'Test';
  ExcelApp.Cells[2, 1].Value := 'Text';
  ExcelApp.Cells[3, 1].Value := FormatDateTime('dd-mmm-yyyy', Now);

  // Установка строки данных одним запросом
  //ExcelApp.Range['A2', 'D2'].Value := VarArrayOf([1, 10, 100, 1000]);

  // Установка формулы
// ExcelApp.Range['A11', 'A11'].Formula := '=Sum(A1:A10)';

  // Изменяем выравнивание ячейки
// ExcelApp.Cells[2, 1].HorizontalAlignment := xlright;

  // Изменяем ширину колонки
  ColumnRange := ExcelApp.Workbooks[1].WorkSheets[1].Columns;
  ColumnRange.Columns[1].ColumnWidth := 20; 
  ColumnRange.Columns[2].ColumnWidth := 40; 

  // Изменяем высоту строки
  ExcelApp.Rows[1].RowHeight := 15.75;

  // Объединение ячеек
  ExcelApp.Range['B3:D3'].Mergecells := True;

  // Применяем границы к ячейке
  ExcelApp.Range['A14:M14'].Borders.Weight := xlThick;
  ExcelApp.Range['A14:M14'].Borders.Weight := xlThin;

  // Установим жирный текст в ячейке

  ExcelApp.Range['B16:M26'].Font.Bold := True; 

  // Установка размера шрифта
  ExcelApp.Range['B16:M26'].Font.Size := 12;

  //Выравниваем текст по правому краю
  ExcelApp.Cells[9, 6].HorizontalAlignment := xlright;

  // Выравниваем текст по горизонтали
  ExcelApp.Range['B14:M26'].HorizontalAlignment := xlHAlignCenter;

  // Выравниваем текст по левому краю
// ExcelApp.Range['B14:M26'].VerticallyAlignment := xlVAlignCenter;


  { Page Setup } 

  ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape;

  // Левый, правый отступы
  ExcelApp.ActiveSheet.PageSetup.LeftMargin  := 35;
  ExcelApp.ActiveSheet.PageSetup.RightMargin := -15;

  // Отступ нижнего колонтитула
  ExcelApp.ActiveSheet.PageSetup.FooterMargin := ExcelApp.InchesToPoints(0);

  // Fit to X page(s) wide by Y tall
  ExcelApp.ActiveSheet.PageSetup.FitToPagesWide := 1;  // Y 
  ExcelApp.ActiveSheet.PageSetup.FitToPagesTall := 3; // Y 

  // Zoom
  ExcelApp.ActiveSheet.PageSetup.Zoom := 95;

  // Устанавливаем размер бумаги: 
// ExcelApp.PageSetup.PaperSize := xlPaperA4;

  // Показать/Скрыть сетку:
  ExcelApp.ActiveWindow.DisplayGridlines := False; 

  // Установить черно-белый 
  ExcelApp.ActiveSheet.PageSetup.BlackAndWhite := False; 

  // footers
  ExcelApp.ActiveSheet.PageSetup.RightFooter := 'Right Footer'; 
  ExcelApp.ActiveSheet.PageSetup.LeftFooter  := 'Left Footer';

  // Показать версию Excel
  ShowMessage(Format('Excel Version %s: ', [ExcelApp.Version]));

  // Показать Excel: 
//  ExcelApp.Visible := True;

  // Сохранить Workbook 
  //ExcelApp.SaveAs('c:\filename.xls');

  // Сохранить активную Workbook: 
// ExcelApp.ActiveSheet.Protect.Password := 'Test';
  ExcelApp.ActiveSheet.Protect(Password:='Test', DrawingObjects:=True, Contents:=True, Scenarios:=True); 
  //Contents:=True, Scenarios:=True
  ExcelApp.ActiveWorkBook.SaveAs('c:\filename.xls');
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  // Выход из Excel
  if not VarIsEmpty(ExcelApp) then
  begin
    ExcelApp.DisplayAlerts := False;
    ExcelApp.Quit; 
  end;

end;

end.

Источник: http://delphi3000.com


 

Добавить комментарий


Защитный код
Обновить