線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1074
推到 Plurk!
推到 Facebook!

ExcelOLEprotect

尚未結案
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2016-03-31 11:39:58 IP:211.20.xxx.xxx 訂閱
我希望,我產生一份EXCEL,固定欄寬,但是可以自訂內容,調整列高我打算用工作業保護的方式做處理,看了一些excel.protect的範例


varExcelApp:variant;
i:integer;
begin
//建立
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Visible:=false;
ExcelApp.Caption:='ApplicationuseMicrosoftExcel';
ExcelApp.WorkBooks.Add;
//設定欄寬
for i:= 65 to 80 do
ExcelApp.ActiveSheet.Columns[chr(i)].ColumnWidth:=(imod5 1)*5;
//整體字型
ExcelApp.Cells.Font.Name:='微軟正黑體';
ExcelApp.Cells.Font.size:=8;
//保護
ExcelApp.ActiveSheet.Protect(Password:='123',Contents:=False,AllowFormattingRows:=True);
//存檔
ExcelApp.ActiveWorkBook.SaveAs('c:\0330.xlsx',51);
//釋放
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
VarClear(ExcelApp);
ExcelApp:=unassigned;

ShellExecute(Handle,nil,'c:\0330.xlsx',nil,nil,SW_SHOWNORMAL);



ExcelApp.ActiveSheet.Protect(
Password:='123',<<密碼
Contents:=False,<<內文保護(不要)
AllowFormattingRows:=True<<允許控制列高
);

我並沒有設定允許欄寬(AllowFormattingColumns)但是很明顯的匯出的EXCEL可以控制欄寬

實驗2
把Contents改成TRUE內文保護後很神奇的列高能控制,欄寬無法控制<<這是我要的但事只差內文不能輸入。

不知道有沒有人預過類似狀況
編輯記錄
boy330077 重新編輯於 2016-03-31 11:53:13, 註解 無‧
boy330077 重新編輯於 2016-03-31 13:06:03, 註解 無‧
boy330077 重新編輯於 2016-03-31 13:06:47, 註解 無‧
系統時間:2017-11-20 15:30:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!