通过字典的形式,让excel中的每一个单元格都和第一行的表头绑定,
Dim arrRet = ""
Dim objExcelWorkBook = ""
// 打开excel
objExcelWorkBook = Excel.OpenExcel("C:\\Users\\Administrator\\Desktop\\12.xls",True,"Excel","","")
// 循环遍历每一个单元格
// 行从1开始,列从'A'开始
// 表头
head = {}
// 数据
body={}
// 存放数据的数组,每行数据以字典的形式表示
list = []
// 将列号与列头一一对应
For j = 1 To Excel.GetColumsCount(objExcelWorkBook,"Sheet1") Step 1
head[""&j]=Excel.ReadCell(objExcelWorkBook,"Sheet1",excelColIndexToStr(j)&1)
Next
TracePrint(head)
// 通过字典的形式,让每一个单元格和列头绑定,这样就可以知道,当前字段的含义是什么
For i = 2 To Excel.GetRowsCount(objExcelWorkBook,"Sheet1") Step 1
body = {}
For j = 1 To Excel.GetColumsCount(objExcelWorkBook,"Sheet1") Step 1
body[head[""&j]] = Excel.ReadCell(objExcelWorkBook,"Sheet1",excelColIndexToStr(j)&i)
Next
// 将每一行数据以一个字典的形式存放在数组中
arrRet = push(list,body)
Next
TracePrint(arrRet)
/*
Excel 列号数字与字母互相转换
*/
// 将字母转化为数字
Function excelColStrToNum(colStr, length)
result = 0
For i = 0 To length-1 Step 1
ch = SubString(colStr,length-i,length-i+1)
num = Asc(ch)-Asc("A") + 1
TracePrint(num*1)
num = num*(26^i)
result = result+num
Next
Return result
End Function
// 将数字转化为字母
Function excelColIndexToStr(columnIndex)
columnStr = ""
If Len(columnStr) >= 0
columnIndex = columnIndex -1
End If
columnStr = Chr(columnIndex Mod 26 + Asc("A"))&columnStr
columnIndex = (columnIndex-columnIndex Mod 26)/26
Do While columnIndex > 0
If Len(columnStr) >= 0
columnIndex = columnIndex - 1
End If
columnStr = Chr((columnIndex) Mod 26 + Asc("A"))&columnStr
columnIndex = (columnIndex-columnIndex Mod 26)/26
Loop
Return columnStr
End Function