找回密码
 加入
搜索
查看: 2721|回复: 5

[GUI管理] Excel表格中一个奇怪的问题?【已解决】

[复制链接]
发表于 2013-1-3 21:55:54 | 显示全部楼层 |阅读模式
本帖最后由 blue_dvd 于 2013-1-4 07:20 编辑

附件中姓名一列,我用去空格的方式,始终都无法去除,很奇怪!
计算长度总会多一个字符,究竟是什么字符?哪位高手能知道姓名前面看不到的是什么字符?
#include<array.au3>

   Local $sFilePath2 = FileOpenDialog("选择导入电子表格文件", @ScriptDir & "", "Microsoft Excel 工作薄 (*.xls)", 1 + 2 + 4)
        
        $oexcel=ObjCreate("excel.application") ;创建excel进程
    $oexcel.visible=False  ;隐藏进程界面,可以提高处理速度
    $wb=$oexcel.workbooks.open($sFilePath2)  ;打开选定工作簿
            
        Local $aArray2 = $wb.worksheets(1).usedrange.value
        $aArray2=Array2DColsToRows($aArray2)
                
        Local $aLen[UBound($aArray2)][2]
        For $i=1 To UBound($aArray2)-1
                $aLen[$i][0]=StringStripWS($aArray2[$i][1],8) ;去掉所有的空格
                $aLen[$i][1]=StringLen($aArray2[$i][1])
        Next
        
        
        _ArrayDisplay($aLen,"字符长度检查")
        
        $wb.close(true)  ;保存并关闭工作簿(参数true代表保存)
    $oexcel.quit  ;退出excel进程
        MsgBox(0,"","处理完成!")
        
        Func Array2DColsToRows(ByRef $avArray)
        Local $avArray2[UBound($avArray, 2)][UBound($avArray, 1)]
        For $i = 0 To UBound($avArray, 2) - 1
                For $j = 0 To UBound($avArray, 1) - 1
                        $avArray2[$i][$j] = $avArray[$j][$i]
                Next
        Next
        Return $avArray2
    EndFunc   ;==>Array2DColsToRows
Excel文件如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-1-3 23:03:18 | 显示全部楼层
名字前有一个tab,可以替换掉
发表于 2013-1-3 23:04:06 | 显示全部楼层
$wb.worksheets(1).usedrange.replace(@tab,"")
这样应该就可以了
 楼主| 发表于 2013-1-3 23:44:59 | 显示全部楼层
回复 3# kevinch
大哥怎么查出是@tab键?
发表于 2013-1-4 00:09:56 | 显示全部楼层
回复 4# blue_dvd


    复制有问题的字符串,到notepad++中粘贴一下,然后显示所有字符,就看到tab符了~
 楼主| 发表于 2013-1-4 07:20:00 | 显示全部楼层
回复 5# haijie1223
多谢提醒!终于搞定了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 07:34 , Processed in 0.082097 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表