关于编写Excel脚本的一点收获

关于编写Excel脚本的一点收获
为帮助他人统计excel中的数据,我用python写了一个读写excel文件的脚本。
虽然最终功能实现了但是速度却很慢,处理一个7列,4K行数据的excel文件用了3分钟左右的时间,后来了解到是我把接口用错了。

脚本在读取excel文件时是以 行 为单位读取的,而我在实现读取整行时是一个单元格一个单元格的读取,然后将这些单元格在拼成一行,如下面代码:
ValidRowCount  =  self.m_xlsSheet.UsedRange.Rows.Count
ValidColCount 
=  self.m_xlsSheet.UsedRange.Columns.Count
indexRow 
=   1

while  (indexRow  <=  ValidRowCount):

    indexCol 
=   1 ;
    rowData 
=  [];

    
while  indexCol  <=  ValidColCount:

        val 
=  self.m_xlsSheet.Cells(indexRow , indexCol).Value

        
if  val:
            rowData.append(val)
        
else :
            rowData.append(
'' )

        indexCol 
+=   1 ;

后来了解到可以 通过Sheets .Range 一次性读取一个区域的数据,于是代码改成了:
while  (indexRow  <=  ValidRowCount):

    indexCol 
=   1 ;
    rowData 
=  [];

    first 
=  self.m_xlsSheet.Cells(indexRow ,  1 );
    end 
=  self.m_xlsSheet.Cells(indexRow , ValidColCount);

    rowDatas 
=  list(self.m_xlsSheet.Range(first , end).Value)

    indexCol 
+=   1

用修改后的再测了下,同样的文件只用了50秒左右,比原先的省了2/3的时间。
后来又增加了每次的读取亮,速度又快了不少。

你可能感兴趣的:(关于编写Excel脚本的一点收获)