做門戶網(wǎng)站主要技術(shù)哪一塊業(yè)務(wù)推廣方式有哪些
1.需求誕生
小王就職于一家國有大型企業(yè),工作業(yè)務(wù)十分繁忙,在處理企業(yè)某業(yè)務(wù)數(shù)據(jù)時,需要從上千個Excel文件中提取某一單元格位置的數(shù)據(jù),并整理到另一個Excel文件。要說是這樣的Excel文件僅有幾個或者十幾個也還好,手動點開復制粘貼并不是難事。
但是面對一下子上千個的文件,要靠人工操作恐怕是非常不現(xiàn)實的,小王頓感到十分地為難。好在,他這時候想到了自己的好朋友“八兩”。八兩聽完了小王的介紹,知道這樣的需求肯定是可以軟件實現(xiàn)的,于是對小王說,你把文件發(fā)給我吧,我下班回家后寫代碼幫你提取數(shù)據(jù)??墒切⊥鯀s說,這些文件涉及到企業(yè)核心經(jīng)營數(shù)據(jù),實在不方便提供。于是問題暫時陷入了僵局。
2.實現(xiàn)思路
小王不懂代碼,更不會編寫軟件,無法提供Excel文件肯定是不方便調(diào)試的,所以憑空寫一個應(yīng)用程序發(fā)給小王,萬一遇到軟件有Bug的地方也不便于調(diào)試。好在還有一種編程語言叫做腳本語言,比如說VBS,VBS的腳本程序擴展名即為.vbs,使用記事本文件可以直接編寫,保存后還可以雙擊直接在Windows系統(tǒng)上運行,遇到異常的話,遠程指導小王修改其中的腳本代碼也相對容易。于是八兩決定使用記事本來完成這樣一件任務(wù)。
3.核心代碼
廢話不多說,直接貼出全部腳本代碼。
' 定義文件夾路徑
Dim folderPath
folderPath = "D:\YourFolderPath\"
' 定義目標 Excel 文件路徑
Dim targetExcelPath
targetExcelPath = "D:\YourTargetExcel.xlsx"
' 打開文件夾
Set folder = CreateObject("Scripting.FileSystemObject").GetFolder(folderPath)
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True ' 設(shè)置Excel可見
Set targetWorkbook = objExcel.Workbooks.Open(targetExcelPath)
Set targetWorksheet = targetWorkbook.Worksheets(1)
' 遍歷文件夾中的 Excel 文件
dim row,col
' row,col是定義寫入位置的初始位置,行和列號
row=1
col=1
For Each file In folder.FilesIf LCase(Right(file.Name, 4)) = ".xls" Or LCase(Right(file.Name, 5)) = ".xlsx" Then' 打開 Excel 文件Set workbook = objExcel.Workbooks.Open(file.Path)' 選擇要提取數(shù)據(jù)的工作表Set worksheet = workbook.Worksheets(1)' 提取相同位置的數(shù)據(jù)Dim dataToExtract' 這句的1,1是指讀取文件中要讀取數(shù)據(jù)的 位置是第1行第1列。dataToExtract = worksheet.Cells(1, 1).Value' 將數(shù)據(jù)寫入目標表格targetWorksheet.Cells(row, col) = dataToExtractrow=row+1' 關(guān)閉打開的 Excel 文件workbook.CloseEnd If
Next
' 顯示完成消息
MsgBox "數(shù)據(jù)提取完成!"
注意,這里的代碼用記事本保存時,編碼一定要選擇為ANSI,如果保存為UTF-8或者其他編碼格式,運行是會報錯的。保存時,保存類型選擇為“所有文件(*.*)”,文件名為“提取數(shù)據(jù).vbs”即可。
4.完整文件
普通腳本文件而已,大家復制保存后,修改運行即可,就不上傳單獨的文件了。