使用VFP2Excel导出VFP数据时如何修剪字符字段的尾随空格?
解决VFP2Excel导出时保留字符字段尾随空格的问题
方法一:导出前在VFP中预处理数据(最简便)
在生成数据源的SQL语句里,对所有字符型字段使用TRIM()函数修剪尾随空格,示例:
SELECT TRIM(cust_name) AS cust_name, TRIM(address) AS address, phone FROM customers INTO CURSOR temp_data
用这个预处理后的游标作为VFP2Excel的数据源,导出的Excel数据就不会有尾随空格。
方法二:修改VFP2Excel代码自动处理
找到VFP2Excel中循环写入单元格的代码段(通常是遍历字段和记录的部分),在赋值前判断字段类型,对字符型字段自动修剪:
* 替换原赋值代码为: IF VARTYPE(laFields[lnCol]) = 'C' oSheet.Cells(lnRow, lnCol).Value = TRIM(laFields[lnCol]) ELSE oSheet.Cells(lnRow, lnCol).Value = laFields[lnCol] ENDIF
这样所有字符型字段在写入Excel时都会自动去掉尾随空格,无需修改数据源。
方法三:导出到Excel后批量修剪
如果已经导出未处理的Excel文件,可通过以下方式快速处理:
1. 使用Excel内置TRIM函数
- 在目标列旁插入空白列,例如要处理A列,在B1单元格输入
=TRIM(A1) - 下拉填充公式至所有行,选中B列结果,右键选择“复制”
- 选中A列,右键选择“粘贴值”,最后删除辅助列B
2. 使用VBA宏批量处理
- 打开Excel文件,按
Alt+F11打开VBA编辑器 - 插入新模块,粘贴以下代码:
Sub TrimTrailingSpaces() Dim cell As Range For Each cell In Selection If TypeName(cell.Value) = "String" Then cell.Value = Trim(cell.Value) End If Next cell End Sub
- 返回Excel界面,选中需要处理的所有数据区域,按
Alt+F8运行宏TrimTrailingSpaces即可批量修剪尾随空格
内容的提问来源于stack exchange,提问作者Ed Lennon
相关产品推荐
相关产品推荐

