如何判断并删除excel中的空白列? |
答題得分者是:Fishman
|
ffprince
初階會員 ![]() ![]() 發表:66 回覆:62 積分:25 註冊:2003-08-16 發送簡訊給我 |
|
hahalin
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: 新年快樂!! Excel 中有一個 COUNTA 的函數,可以用來計算指定區間內非空白儲存格的數目,你可以在該檔案中,在每一列的特定欄位中使用此函數,再看欄欄位值是否為零,是的話將欄刪除,具體做法如下
procedure TForm1.OpenExcelFile(SRFileName,TRFileName: String); VAR LocID : LCid; I : Integer; begin IF FileExists(SRFileName) THEN BEGIN LocID := GetUserDefaultLCID; TRY ExcelApplication1.Connect; ExcelApplication1.Visible[LocID] := False; ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(SRFileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LocID)); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet); TRY ExcelApplication1.Columns.Range_['A1','A65536'].Insert(xlToRight); FOR I := 100 DOWNTO 1 DO BEGIN ExcelApplication1.Columns.Range_['A' IntToStr(I),'A' IntToStr(I)].Value := '=COUNTA(B' IntToStr(I) ':IV' IntToStr(I) ')'; IF ExcelApplication1.Columns.Range_['A' IntToStr(I),'A' IntToStr(I)].Text = '0' THEN ExcelApplication1.Columns.Range_['A' IntToStr(I),'IV' IntToStr(I)].Delete(xlUp); END; ExcelApplication1.Columns.Range_['A1','A65536'].Delete(xlToLeft); IF FileExists(TRFileName) THEN DeleteFile(TRFileName); (ExcelApplication1.ActiveWorkbook AS _WorkBook).SaveAs(TRFileName,xlNormal,'','',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; ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Quit; ExcelApplication1.Disconnect; // DeleteFile(SRFileName); END; end;至於迴圈控制部分,請自行加以調整
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |