我有 Excel 表,其中包含 20 多个电子表格,每个电子表格包含 1000 多行。我在 Linux 环境中使用 python 程序生成这个 Excel 表。但我也可以将这些文件带入 windows 环境。是否可以将两个 Excel 工作表与电子表格数据进行比较?有没有人使用 Windows、Linux 和 Excel 属性或 Python 中的任何工具来比较电子表格和数据
问问题
539 次
2 回答
1
我同意没有谷歌的负面观点。有时我犯了这个错误。非常感谢您的回复。但我发现了以下工具,它比较了两个 Excel.anyway 它正在编程。仅供参考,如果您正在寻找这样的工具。
于 2013-09-28T17:07:24.277 回答
1
VBA 是最明显的解决方案。
将每张纸的使用范围加载到数组中并循环遍历数组。
不要遍历范围,因为这需要时间。
一些即时编写的代码作为其工作原理的基本示例。根据您想要比较的方式和内容,您可以进行定制。无论如何,这只是一般原则。
Dim lCnt_A as Long
Dim lCnt_B as Long
Dim vArray_1 as variant
Dim vArray_2 as variant
Dim oRange_1 as Excel.range
Dim oRange_2 as Excel.range
Dim lCnt_Rows as Long
Dim lCnt_Cols as Long
'Don't do this:
for lCnt_A = 1 to 5000
for lCnt_B = 1 to 100
if thisworkbook.sheets(1).cells(lCnt_A, lCnt_B).value <> Thisworkbook.sheets(2).cells(lCnt_A, lCnt_B).value Then
Msgbox ("Difference spotted in cell" & thisworkbook.sheets(1).cells(lCnt_A, lCnt_B).Address)
end if
next lCnt_B
next lCnt_A
'But rather this, it's faster:
set oRange_1 = thisworkbook.sheets(1).usedrange
set oRange_2 = thisworkbook.sheets(2).usedrange
lCnt_Rows = oRange_1.rows.count
lCnt_Cols = oRange_1.rows.count
redim vArray_1(1 to lCnt_Rows, 1 to lCnt_Cols)
redim vArray_2(1 to lCnt_Rows, 1 to lCnt_Cols)
vArray_1 = oRange_1
vArray_2 = oRange_2
for lCnt_A = 1 to 5000
for lCnt_B = 1 to 100
if vArray_1(lCnt_A, lCnt_B) <> vArray_2(lCnt_A, lCnt_B) then
Msgbox ("Difference spotted in row " & lCnt_A & " and column " & lCnt_B)
end if
next lCnt_B
next lCnt_A
于 2013-09-27T10:28:05.757 回答