blue_dvd 发表于 2013-1-3 21:55:54

Excel表格中一个奇怪的问题?【已解决】

本帖最后由 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
        For $i=1 To UBound($aArray2)-1
                $aLen[$i]=StringStripWS($aArray2[$i],8) ;去掉所有的空格
                $aLen[$i]=StringLen($aArray2[$i])
        Next
       
       
        _ArrayDisplay($aLen,"字符长度检查")
       
        $wb.close(true);保存并关闭工作簿(参数true代表保存)
    $oexcel.quit;退出excel进程
        MsgBox(0,"","处理完成!")
       
        Func Array2DColsToRows(ByRef $avArray)
      Local $avArray2
      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文件如下

kevinch 发表于 2013-1-3 23:03:18

名字前有一个tab,可以替换掉

kevinch 发表于 2013-1-3 23:04:06

$wb.worksheets(1).usedrange.replace(@tab,"")这样应该就可以了

blue_dvd 发表于 2013-1-3 23:44:59

回复 3# kevinch
大哥怎么查出是@tab键?

haijie1223 发表于 2013-1-4 00:09:56

回复 4# blue_dvd


    复制有问题的字符串,到notepad++中粘贴一下,然后显示所有字符,就看到tab符了~

blue_dvd 发表于 2013-1-4 07:20:00

回复 5# haijie1223
多谢提醒!终于搞定了!
页: [1]
查看完整版本: Excel表格中一个奇怪的问题?【已解决】