uibot Excel绑定表头和单元格,让每一个单元格都记住它的含义

通过字典的形式,让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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值