用OLE 的方式判斷Excel 內的cell是否有值 |
尚未結案
|
LLP
一般會員 發表:3 回覆:8 積分:2 註冊:2004-12-06 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
LLP:補supman版大的話: if (OpenDialog1->Execute()) { AnsiString FileName= OpenDialog1->FileName; AnsiString buffer; int Column_=0,Row_=0; Variant FExcel; Variant FWorkBooks; Variant FWorkBook; Variant FWorkSheet; Variant FCells; Variant FCell; Variant FColumns; Variant Data_; try { FExcel = CreateOleObject("Excel.Application"); FExcel.OlePropertySet("Visible", false); FWorkBooks = FExcel.OlePropertyGet("Workbooks"); FWorkBooks.OleFunction("Open",WideString(FileName)); FWorkBook = FWorkBooks.OlePropertyGet("Item",1); FWorkSheet = FWorkBook.OlePropertyGet("Sheets",1); FCells = FWorkSheet.OlePropertyGet("Cells"); FCell = FCells.OlePropertyGet("SpecialCells",11); FCell.OlePropertyGet("Activate"); FColumns = FExcel.OlePropertyGet("ActiveCell"); Column_ = FColumns.OlePropertyGet("Column"); Row_ = FColumns.OlePropertyGet("Row"); for (int k = 1 ; k <= Row_ ; k ) { for (int i = 1 ; i <= Column_ ; i ) { FCell = FCells.OlePropertyGet("Cells",k,i); // Row,Column Data_ = FCell.OlePropertyGet("Value"); // Data_.Type(); buffer= (AnsiString) Data_; if (buffer.IsEmpty()) // 空值 else // 有值 Application->ProcessMessages(); } } } __finally { FExcel.OlePropertySet("DisplayAlerts",false); FExcel.OleFunction("Quit"); } FExcel = Unassigned; FWorkBooks = Unassigned; FWorkBook = Unassigned; FWorkSheet = Unassigned; FCells = Unassigned; FCell = Unassigned; FColumns = Unassigned; Data_ = Unassigned; } } 注意紅字部分就是supman版大所言 要判斷有沒有值沒辦法直接判斷,因為他是OleVariant Type,您必須要先將他等於到某個字串變數中再進行判斷才可以。 請參考!Andy Chang
------
Andy Chang |
LLP
一般會員 發表:3 回覆:8 積分:2 註冊:2004-12-06 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
LLP
一般會員 發表:3 回覆:8 積分:2 註冊:2004-12-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |