国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB中操作EXECL表格(不使用AOD、DAO等)
 VB中操作EXECL表格(不使用AOD、DAO等)
介紹如何利用EXCEL對象操作.XLS文件,而不使用DAO等。下面是一個示例代碼,昨天寫的,是高中學分評定的一個輔助工具,可以把班主任做好的表里面的學號和姓名都弄過來并自動添加對應學分:)以上這些都是固定的啦,用起來省去不少工夫,當然了,這里主要是介紹VB中用EXCEL操作XLS文件,不討論在EXCEL里直接用VBA實現(xiàn)的問題~~~;還有一個提供“模板”的功能:把學生的分數(shù)用一個模擬函數(shù)同時輸入進去,這個功能大家不要用來作弊哦~~~自己學生的成績還是要自己一個一個填的才對的起學生麻!而且那個模擬函數(shù),說實在的,就是簡單寫了幾句,模擬的情況并不是很好啦~~~
下面看代碼:(工程中除必須引用對象外沒有對任何對象進行引用,在FORM1里面名字為XlsOpenCD的是一個commandDialog控件,如果測試時提示找不到,請將其刪除并填加commandDialog控件,將其命名為XlsOpenCD)
注意:代碼由一個窗體(FORM1)和三個模塊及一個資源文件組成;你復制下來后直接測試會提示錯誤的,把FORM_LOAD事件里面對模塊3中SetLogo函數(shù)的調用注釋掉就可以啦。代碼寫的倉促,沒有整理,但是要介紹的EXCEL對象基本介紹清楚了。(簡述一下思路:建立一個表格文件并保持打開狀態(tài),打開要填加的表格,獲取相應數(shù)據(jù)后加入建立的表格中,關閉打開的表格,關閉建立的表格。)
'以下復制后保存為FORM1.FRM
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.ocx"
Begin VB.Form Form1
   Caption         =   "高中學分評定 任課教師報表輔助工具 V1.1.0"
   ClientHeight    =   5325
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   12240
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   5325
   ScaleWidth      =   12240
   StartUpPosition =   2  '屏幕中心
   Begin VB.Frame Frame6
      Height          =   855
      Left            =   10080
      TabIndex        =   27
      Top             =   4440
      Width           =   2055
      Begin VB.PictureBox LogoPic
         Appearance      =   0  'Flat
         BorderStyle     =   0  'None
         ForeColor       =   &H80000008&
         Height          =   710
         Left            =   30
         MouseIcon       =   "Form1.frx":0000
         MousePointer    =   99  'Custom
         ScaleHeight     =   705
         ScaleWidth      =   1980
         TabIndex        =   28
         Top             =   120
         Width           =   1980
      End
   End
   Begin VB.Frame Frame5
      Caption         =   "操作結束:"
      Height          =   735
      Left            =   60
      TabIndex        =   19
      Top             =   3600
      Width           =   12135
      Begin VB.CheckBox Check5
         Caption         =   "單擊“表格編輯結束”打開生成的表格所在文件夾"
         Height          =   255
         Left            =   4800
         TabIndex        =   22
         Top             =   300
         Value           =   1  'Checked
         Width           =   4455
      End
      Begin VB.CheckBox Check4
         Caption         =   "單擊“表格編輯結束”打開生成的表格"
         Height          =   255
         Left            =   480
         TabIndex        =   21
         Top             =   300
         Value           =   1  'Checked
         Width           =   3495
      End
      Begin VB.CommandButton Command3
         Caption         =   "表格編輯結束"
         Height          =   375
         Left            =   10200
         TabIndex        =   20
         Top             =   240
         Width           =   1695
      End
   End
   Begin MSComDlg.CommonDialog XlsOpenCD
      Left            =   8880
      Top             =   3720
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.Frame Frame4
      Caption         =   "操作信息:"
      Height          =   855
      Left            =   60
      TabIndex        =   10
      Top             =   4440
      Width           =   9975
      Begin VB.Label Label6
         Caption         =   "準備完畢"
         Height          =   495
         Left            =   480
         TabIndex        =   11
         Top             =   240
         Width           =   9255
      End
   End
   Begin VB.Frame Frame3
      Caption         =   "項目添加操作:"
      Height          =   2535
      Left            =   10020
      TabIndex        =   8
      Top             =   960
      Width           =   2175
      Begin VB.CheckBox Check1
         Caption         =   "成績真實情況模擬"
         Height          =   495
         Left            =   120
         TabIndex        =   26
         Top             =   600
         Value           =   1  'Checked
         Width           =   1815
      End
      Begin VB.CheckBox Check2
         Caption         =   "總分按 150 計"
         Height          =   495
         Left            =   120
         TabIndex        =   25
         Top             =   240
         Width           =   1695
      End
      Begin VB.CheckBox Check3
         Caption         =   "去除該表首行數(shù)據(jù)"
         Height          =   495
         Left            =   120
         TabIndex        =   24
         Top             =   960
         Value           =   1  'Checked
         Width           =   1815
      End
      Begin VB.TextBox TxtNum
         Height          =   270
         Left            =   1440
         TabIndex        =   17
         Text            =   "2"
         Top             =   1560
         Width           =   495
      End
      Begin VB.CommandButton Command1
         Caption         =   "添加表格"
         Height          =   375
         Left            =   240
         TabIndex        =   9
         Top             =   1980
         Width           =   1695
      End
      Begin VB.Label Label7
         Caption         =   "本班對應學分:"
         Height          =   255
         Left            =   240
         TabIndex        =   16
         Top             =   1620
         Width           =   1335
      End
   End
   Begin VB.Frame Frame2
      Caption         =   "程序說明信息:"
      Height          =   2535
      Left            =   60
      TabIndex        =   7
      Top             =   960
      Width           =   9915
      Begin VB.PictureBox MsgPic
         Appearance      =   0  'Flat
         AutoRedraw      =   -1  'True
         BorderStyle     =   0  'None
         FillColor       =   &H00404040&
         ForeColor       =   &H80000008&
         Height          =   2175
         Left            =   120
         ScaleHeight     =   2175
         ScaleWidth      =   9495
         TabIndex        =   18
         Top             =   240
         Width           =   9495
      End
   End
   Begin VB.Frame Frame1
      Caption         =   "表格基本信息:"
      Height          =   735
      Left            =   60
      TabIndex        =   0
      Top             =   120
      Width           =   12135
      Begin VB.CommandButton Command2
         Caption         =   "確定設置"
         Height          =   375
         Left            =   10200
         TabIndex        =   23
         Top             =   240
         Width           =   1695
      End
      Begin VB.TextBox Text1
         Height          =   270
         Index           =   4
         Left            =   8400
         TabIndex        =   15
         Text            =   "2004年12月30日"
         Top             =   320
         Width           =   1455
      End
      Begin VB.TextBox Text1
         Height          =   270
         Index           =   3
         Left            =   6600
         TabIndex        =   14
         Text            =   "48"
         Top             =   320
         Width           =   495
      End
      Begin VB.TextBox Text1
         Height          =   270
         Index           =   2
         Left            =   4680
         TabIndex        =   13
         Text            =   "第一學年"
         Top             =   320
         Width           =   975
      End
      Begin VB.TextBox Text1
         Height          =   270
         Index           =   1
         Left            =   2520
         TabIndex        =   12
         Text            =   "化學1"
         Top             =   320
         Width           =   1335
      End
      Begin VB.TextBox Text1
         Height          =   270
         Index           =   0
         Left            =   840
         TabIndex        =   2
         Text            =   "張聰"
         Top             =   320
         Width           =   855
      End
      Begin VB.Label Label5
         Caption         =   "學分認定時間:"
         Height          =   255
         Left            =   7200
         TabIndex        =   6
         Top             =   360
         Width           =   1335
      End
      Begin VB.Label Label4
         Caption         =   "學時數(shù)目:"
         Height          =   255
         Left            =   5760
         TabIndex        =   5
         Top             =   360
         Width           =   975
      End
      Begin VB.Label Label3
         Caption         =   "學年度:"
         Height          =   255
         Left            =   3960
         TabIndex        =   4
         Top             =   360
         Width           =   735
      End
      Begin VB.Label Label2
         Caption         =   "課程名:"
         Height          =   255
         Left            =   1800
         TabIndex        =   3
         Top             =   360
         Width           =   735
      End
      Begin VB.Label Label1
         Caption         =   "教師名:"
         Height          =   255
         Left            =   120
         TabIndex        =   1
         Top             =   360
         Width           =   735
      End
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'*******************************************************************************************
'作者信息:
'演示如何對EXCEL對象進行操作,往往對XLS文件的操作不需要DAO、ADO等,可以直接利用OFFICE來進行,
'當然這也有局限性:未安裝MS EXCEL的計算機可能無法正常運行。代碼未整理,一步一步寫的,亂點兒。
'E-MAIL:  shaoyan5@163.com
'        作者:張聰(ZCSOR)
'        于2006年9月18日
'*******************************************************************************************
Option Explicit
Private mDataPath As String
Private mTempPath As String
Private mTempFile As String
Private mTempStr As String
Private mXLS As String

Private Sub Check1_Click()
If Check1.Value Then TxtNum.Enabled = True Else TxtNum.Enabled = False
End Sub
Private Sub Command1_Click()
On Error GoTo mErr
'添加并處理數(shù)據(jù)
'設置打開對話框
XlsOpenCD.CancelError = True
XlsOpenCD.Flags = cdlOFNHideReadOnly
'將用戶選定文件以備份方式打開
XlsOpenCD.ShowOpen
mTempFile = mTempPath & XlsOpenCD.FileTitle
For mIndex = LBound(mOpenFile) To UBound(mOpenFile)
    Debug.Print mOpenFile(mIndex)
    If mOpenFile(mIndex) = XlsOpenCD.FileName Then
        If MsgBox(mTempFile & "已經(jīng)添加,真的要重復添加嗎?", vbYesNo, "表格已添加") = vbNo Then GoTo mErr:
    End If
Next
Command1.Enabled = False
Command3.Enabled = False
Form1!Label6.Caption = "正在備份和打開表格……"
FileCopy XlsOpenCD.FileName, mTempFile
DoEvents
'打開用戶選定文件,并處理數(shù)據(jù)后,添加到輸出文件

Set aExcel = CreateObject("excel.application") '創(chuàng)建EXCEL應用程序對象,啟動EXCEL應用程序
Set aBook = aExcel.Workbooks.Open(mTempFile)  '打開工作薄,并將其賦給xbook
Set aSheet = aBook.Worksheets(1) '將xbook工作薄中的第一個表賦給xsheet
'Debug.Print aSheet.cells(1, 1), aSheet.cells(1, 2)
'尋找導入表終點
Form1!Label6.Caption = "正在查找表格內條目數(shù)……"
For mIndex = 1 To 4096
    If aSheet.cells(mIndex, 1) = "" Then
        aEofSheet = mIndex
        Exit For
    End If
Next
'將導入表內容輸入到最終表
Form1!Label6.Caption = "正在將" & mTempFile & "內容導入到" & mXLS & "……"
If Check2.Value Then mNum = 1.5 Else mNum = 1
Dim mJz As Long
If Check3.Value Then mJz = 2 Else mJz = 1
mIndex = 0
If mEofSheet = 0 Then mEofSheet = 2
For mIndex = mJz To aEofSheet - 1
    mSheet.cells(mEofSheet, 1) = aSheet.cells(mIndex, 1)
    mSheet.cells(mEofSheet, 2) = aSheet.cells(mIndex, 2)
    If Check1.Value Then
        mSheet.cells(mEofSheet, 3) = mRnd(mIndex)
        mSheet.cells(mEofSheet, 4) = TxtNum.Text
    End If
    mEofSheet = mEofSheet + 1
Next
aBook.Close
DoEvents
Set aSheet = Nothing
Set aBook = Nothing
Set aExcel = Nothing
ReDim Preserve mOpenFile(mOpenNum)
mOpenFile(mOpenNum) = XlsOpenCD.FileName
mOpenNum = mOpenNum + 1
Form1!Label6.Caption = "成功將" & mTempFile & "內容導入到" & mXLS & "中。"
XlsMsg XlsOpenCD.FileName & "———添加人數(shù)為:" & aEofSheet - 1
Command1.Enabled = True
Command3.Enabled = True
mErr:
Form1!Label6.Caption = "執(zhí)行了取消操作,等待繼續(xù)操作……"
Exit Sub
End Sub
Private Sub Command2_Click()
mOpenNum = 0
mEofSheet  = 0
ReDim mOpenFile(mOpenNum)
For mIndex = 0 To 4
    If Text1(mIndex).Text = "" Then
        MsgBox "信息不完全"
        Exit Sub
    End If
Next
Command2.Enabled = False
'建立輸出文件
mXLS = mDataPath
For mIndex = 0 To 4
    mXLS = mXLS & Text1(mIndex).Text & "_"
    mTempStr = mTempStr & Text1(mIndex).Text & "_"
Next
mXLS = mXLS & "xfxx.xls"
'建立一個新工作薄,用以存儲合成后的數(shù)據(jù).工作薄處于打開狀態(tài)等待數(shù)據(jù)寫入
If Not ConstructXls(mXLS) Then Exit Sub
'清除消息顯示
MsgPic.Cls
XlsMsg "已填加的表格有,請自行觀察是否重復:"
Frame2.Caption = " 添加表格信息:"
Label6.Caption = "生成表格操作完成"
Command1.Enabled = True
End Sub
Private Sub Command3_Click()
Frame2.Caption = " 程序說明信息:"
mMsg
'關閉工作薄
Form1!Label6.Caption = "正在關閉工作薄……"
mBook.save
mBook.Close
DoEvents
Set mSheet = Nothing
Set mBook = Nothing
Set mExcel = Nothing
Form1!Label6.Caption = "已經(jīng)關閉工作薄。可以繼續(xù)制定表格"
Command2.Enabled = True
Command1.Enabled = False
Command3.Enabled = False
If Check4.Value Then Shell "Rundll32.exe url.dll, FileProtocolHandler " & mXLS
If Check5.Value Then Shell "explorer.exe " & mDataPath
End Sub
Private Sub Form_Load()
'顯示窗體消息
mMsg
'查詢并建立相應目錄
mDataPath = App.Path & "\示例數(shù)據(jù)庫\"
mMDir mDataPath
mTempPath = App.Path & "\TEMP\"
mMDir mTempPath
'設置打開對話框過濾器
XlsOpenCD.Filter = "*.xls | *.xls"
Command1.Enabled = False
Command3.Enabled = False
SetLogo 101
End Sub
Public Sub mMDir(ByVal mPath As String)
'路徑查詢,如果不存在則建立目錄
If Dir(mPath, vbDirectory) <> "." Then MkDir (mPath)
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
MsgBox "使用中發(fā)現(xiàn)問題請聯(lián)系作者:" & vbCrLf & _
       "E-MAIL: shaoyan5@163.com" & vbCrLf & _
       "            開發(fā)者:張聰", vbOKOnly, "感謝使用"
Command3_Click
End Sub

Private Sub LogoPic_Click()
If Check4.Value Then Shell "Rundll32.exe url.dll, FileProtocolHandler End Sub
'表格操作相關,這些其實應該寫在窗體里,變量有很多是局部的。
Option Explicit
Public mExcel As Object, mBook As Object, mSheet As Object  '成品表對象
Public aExcel As Object, aBook As Object, aSheet As Object  '添加表對象
Public mEofSheet As Long '標志成品表最后一個單元格,已經(jīng)有的單元格個數(shù)
Public aEofSheet As Long '標志添加表最后一個單元格,即本表所有的學生個數(shù)
Public mIndex As Long '用于循環(huán)
Public mNum As Single  '代表分制
Public mOpenFile() As String '保存已經(jīng)導入過的文件
Public mOpenNum As Long '保存已經(jīng)導入的表的個數(shù)
'建立一個空的數(shù)據(jù)表格
Public Function ConstructXls(ByVal xlsPathName As String) As Boolean
On Error GoTo mErr
If Dir(xlsPathName) <> "" Then
    If MsgBox("表格 " & xlsPathName & " 已存在,要刪除它嗎?" & vbCrLf & "注意:如果不刪除將無法繼續(xù)!", vbYesNo) = vbYes Then Kill xlsPathName Else Exit Function
End If
Form1!Label6.Caption = "正在建立工作薄和表格……"
Set mExcel = CreateObject("excel.application") '創(chuàng)建EXCEL應用程序對象,啟動EXCEL應用程序
Set mBook = mExcel.Workbooks.Add '新建一個工作簿,并將其賦給mbook
Set mSheet = mBook.Worksheets(1) '將mbook工作薄中的第一個表賦給msheet
'窗體信息
Public Sub mMsg()
Form1!MsgPic.AutoRedraw = True
Form1!MsgPic.Cls
Form1!MsgPic.Print "說明〖單擊“確定設置”后,該信息將消失;導入表為班主任填寫完整學生信息后的表格,如:cxfb.xls〗"
Form1!MsgPic.Print "一、程序界面:"
Form1!MsgPic.Print "        1 、表格基本信息欄:其中每項都是必填內容,它們組成成品表表的名字(按提示設置即與要求相同)。"
Form1!MsgPic.Print "        2 、項目添加操作欄:這一欄的信息,對應你將打開的數(shù)據(jù)庫在成品表中的設置,詳細見以下說明:"
Form1!MsgPic.Print "            ①成績真實情況模擬:勾選后,生成的表中,將帶有所有學生的成績和學分"
Form1!MsgPic.Print "            ②去除該表首行數(shù)據(jù):勾選后,會將導入里第一行數(shù)據(jù)刪除后導入最終表格(這不影響打開的原始表)"
Form1!MsgPic.Print "            ③本班對應學分文本:選擇“成績真實情況”后可用,表示成品表中“學分”的數(shù)據(jù)(適應文理不同)"
Form1!MsgPic.Print "二、使用方法:"
Form1!MsgPic.Print "        1 、填寫“表格基本信息”欄內容,確信無誤后按下“確定設置”按鈕。"
Form1!MsgPic.Print "        2 、在“項目添加操作”欄內填寫相應內容,該欄內的設置,只對本次將要填加的表有效。確信無誤后按下“" & vbCrLf & "            填加表格”按鈕。"
Form1!MsgPic.Print "        3 、重復第 2步的操作,直到把所有要填加的表格填加完全,單擊“編輯結束”按鈕或“退出程序”按鈕。"
End Sub
'表格操作信息
Public Sub XlsMsg(ByVal xlsPathName As String)
Form1!MsgPic.Print xlsPathName
End Sub
'======================用于查找進程和終止進程的API函數(shù)常數(shù)定義=====================
Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Const MAX_PATH As Integer = 260
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type
Const TH32CS_SNAPheaplist = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPthread = &H4
Const TH32CS_SNAPmodule = &H8
Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule
 下載地址:
以上代碼中存在一些問題,下載后請在COMMAND3的CLICK事件中添加mEofSheet  = 0 一句,具體見上面。該句修復了第2次建立表格時表格位置的問題,另外,代碼中隨即成績除存在嚴重BUG,導致運行失??;代碼中彈出對話框(特別是添加表對話框)后,若點取消,將導致程序無法繼續(xù)使用的嚴重BUG。以上3個問題已經(jīng)修復,進行較全面測試后,將把更新幫本發(fā)到下載區(qū),感謝大家的關注。希望大家能把發(fā)現(xiàn)的問題通過E-MAIL發(fā)給我,因為是我自己開發(fā),沒有很多測試機會,需要大家共同完善,當然,完善后的代碼會隨軟件一同發(fā)布。感謝大家的支持,我的MAIL:shaoyan5@163.com
該代碼還存在其他BUG,以及使用時不是很順手的問題,在下一版本會修正。
 
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zcsor/archive/2006/09/18/1236804.aspx
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB怎么移動鼠標到指定位置
VB6 屏幕取詞 (源碼+EXE)
vb 簡單彩色進度條代碼 |VB 網(wǎng)|VB 視頻教程|VB編程入門網(wǎng)
VB實用代碼,收藏??!
用VB編程開發(fā)的七段數(shù)碼管程序實現(xiàn)過程!
用VB關閉程序
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服