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

如何讓Excel的某些格線隱藏

尚未結案
kingch
一般會員


發表:7
回覆:5
積分:2
註冊:2004-07-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-19 23:23:40 IP:59.104.xxx.xxx 未訂閱
請教各位大大: 要如何用delphi控制excel,讓某些區域或儲存格的格線消失呢,謝謝!
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-20 11:24:51 IP:61.222.xxx.xxx 未訂閱
是指 Range.merge 合併儲存格 嗎!
kingch
一般會員


發表:7
回覆:5
積分:2
註冊:2004-07-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-22 20:47:25 IP:59.104.xxx.xxx 未訂閱
不好意思,可能我問的方式不好,我是意思是如果要做成向圖上這樣的情形要如何做設定呢?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-23 08:40:56 IP:210.65.xxx.xxx 未訂閱
Hi kingch,    Methods 1 : ExcelApplication
procedure TForm1.Button1Click(Sender: TObject);
VAR
    LocID : LCid;
    SrcFile,TgtFile : String;
begin
    SrcFile := 'C:\Temp\Test.xls';
    TgtFile := 'C:\Temp\Result.xls';
    IF FileExists(SrcFile) THEN
        BEGIN
            LocID := GetUserDefaultLCID;
            TRY
                ExcelApplication1.Connect;
                ExcelApplication1.Visible[LocID] := False;
                ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(SrcFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LocID));
                TRY
                    (ExcelWorkbook1.ActiveSheet AS _Worksheet).Cells.Borders.LineStyle := xlNone;
                    (ExcelWorkbook1.ActiveSheet AS _Worksheet).Range['A3','E9'].Borders.LineStyle := xlContinuous;
                    IF FileExists(TgtFile) THEN
                        DeleteFile(TgtFile);
                    (ExcelApplication1.ActiveWorkbook AS _WorkBook).SaveAs(TgtFile,xlNormal,EmptyParam,EmptyParam,False,False,xlNoChange,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LocID);
                    ExcelWorkbook1.Close(0,EmptyParam);
                EXCEPT
                    ON E: Exception DO ShowMessage(E.Message);
                END;
            EXCEPT
                ON E: Exception DO ShowMessage(E.Message);
            END;
            ExcelWorkbook1.Disconnect;
            ExcelApplication1.Quit;
            ExcelApplication1.Disconnect;
        END;
end;
Methods 2 : OLEObject
procedure TForm1.Button6Click(Sender: TObject);
var
  ExcelApp,WorkBook : OleVariant;
  SrcFile,TgtFile : String;
  I : Integer;
begin
  SrcFile := 'C:\Temp\Test.xls';
  TgtFile := 'C:\Temp\Result.xls';
  ExcelApp := CreateOleObject('Excel.Application');
  ExcelApp.Visible := False;
  WorkBook := ExcelApp.WorkBooks.Open(SrcFile);
  WorkBook.ActiveSheet.Cells.Borders.LineStyle := xlNone;
  WorkBook.ActiveSheet.Range['A3','E9'].Borders.LineStyle := xlContinuous;
  WorkBook.SaveAs(TgtFile);
  ExcelApp.ActiveWorkBook.Close;
  ExcelApp.quit;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
kingch
一般會員


發表:7
回覆:5
積分:2
註冊:2004-07-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-23 23:15:25 IP:211.74.xxx.xxx 未訂閱
謝謝您的回答,不過因為我原來所寫的方式不同,所以您所提供的方法在我的程式中並不能用,但我也因此得到啟發,將程式改成下方的程式碼竟然就可以用了,真是要謝謝您了。    MyExcel.WorkBooks[1].WorkSheets[1].Cells.RANGE[MyExcel.WorkBooks[1].WorkSheets[1].Cells[1,1],MyExcel.WorkBooks[1].WorkSheets[1].Cells[1,39]].borders.LineStyle:=false; MyExcel.WorkBooks[1].WorkSheets[1].Cells.RANGE[MyExcel.WorkBooks[1].WorkSheets[1].Cells[2,1],MyExcel.WorkBooks[1].WorkSheets[1].Cells[33,39]].borders.LineStyle:=true;
系統時間:2024-05-18 16:13:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!