vba_取入csv文件 出力csv文件

本文介绍了如何使用VBA读取CSV文件,处理包含逗号的复杂情况,以及在业务处理后输出新的CSV文件。强调在处理过程中需要注意前缀0的显示问题,并提醒在编写VBA代码时应考虑错误处理和参数类型匹配。

vba读取csv文件,根据csv文件不同,会有不同格式:

      1. 单纯的逗号分割,但是数字或备注字段中包含逗号,取入时,字段会被拆分

       2. 以逗号分割,但是,每个字段都有引号

vba读取入csv后的格式,基本都是字符串,然后通过分隔符进行拆分,所以,遇到一个字段中包含逗号的,很头疼,但是,根据取入的字符串格式,还是有办法可以解决的

' filePath 文件路径
' sheetName 目标sheet页名
Public Sub inputCsv(filePath As String, sheetName As String)
    Dim Buf As String
    Dim i, j As Long
    Dim tmp2() As Variant
    Dim cnt As Integer
    Dim myflag As Boolean
    
    With Worksheets(sheetName)
        .Visible = xlSheetVisible
        .Activate
        .Cells.Select
        Selection.NumberFormatLocal = "@"
        .Cells(1, 1).Select
    End With
    
    ' 開ける
    Set adoSt = CreateObject("ADODB.Stream")
          
    i = 1
    With adoSt
        .Charset = "Shift-JIS"
        .Open
        .LoadFromFile (filePath)
        Do Until .EOS
            Buf = .Readtext(-2)
            tmp = Split(Buf, ",")
            myflag = False
            cnt = 0
            
            For j = LBound(tmp) To UBound(tmp)
                If myflag = False And Left(tmp(j), 1) = """" And Right(tmp(j), 1) = """" Then
                    cnt = cnt + 1
                    ReDim Preserve tmp2(cnt)
                    tmp2(cnt) = Mid(tmp(j), 2, Len(tmp(j)) - 2)
       
### ✅ 中文翻译: 【3】构建步骤 ① 执行集成环境脚本:运行 `mainline\spa_traveo\w_sb.bat` ② 执行标定(Calibration)的【合并处理】和【源码输出处理】 打开以下文件: `mainline\spa_traveo\tool_bin\calibration\Calibration.xlsm` 并执行以下操作: 【合并处理】 将位于 `mainline\spa_traveo\tool_bin\calibration\__item` 目录下的所有标定(Calib)信息内容导(合并)到该 Excel 文件中。 --- ## 🔍 详细解释 这是一个典型的汽车电子嵌式软件开发中的 **构建前准备流程**,主要用于确保应用程序代码与标定参数的一致性。常用于使用 Infineon Traveo™ 等 MCU 的车身控制、仪表或灯光控制系统项目。 --- ### 🧩 分步说明 #### 步骤 ①:运行 `w_sb.bat` —— 初始化集成环境 - **作用**: - 设置工作目录、环境变量 - 检出最新源码(可能通过 Git、ClearCase 等) - 清理旧构建文件 - 准备后续编译所需工具链路径 - **典型行为**: ```bat git pull origin mainline ← 更新主干代码 call setenv.bat ← 设置 IAR/Keil 工具链 mkdir output ← 创建输出目录 ``` > ⚠️ 此脚本通常是自动化构建的第一步,必须成功执行才能进下一步。 --- #### 步骤 ②:打开 `Calibration.xlsm` 并执行标定处理 ##### 📁 文件说明: | 文件 | 用途 | |------|------| | `Calibration.xlsm` | 启用宏的 Excel 文件,用于管理所有标定参数 | | `__item/` 目录 | 存放各个子模块或配置的独立标定文件(如 `.xls`, `.csv`) | ##### 🔄 【合并处理】详解: 将 `__item` 文件夹中多个分散的标定数据文件合并到主文件 `Calibration.xlsm` 中,例如: ``` __item/ ├── LightControl_Calib.xls → 灯光控制参数 ├── Wiper_Setting.csv → 雨刷间隔时间等 └── PowerMode_Config.xls → 不同电源模式下的阈值设定 ``` - 使用 VBA 宏自动读这些文件并按参数 ID 或 Sheet 名称合并。 - 若存在重复参数,需提示用户选择保留哪个版本(或按优先级自动覆盖)。 ##### 💾 【源码输出处理】后续动作(虽未列出但通常包含): 合并完成后,会执行“生成 C 源码”操作,输出为: ```c // calib_params.h extern const float HEADLIGHT_DELAY_S; extern const int WIPER_INTERVAL_MS; // calib_params.c const float HEADLIGHT_DELAY_S = 0.5f; const int WIPER_INTERVAL_MS = 3000; ``` 这些文件会被编译进最终的 ECU 应用程序中。 --- ## ✅ 推荐实践建议 | 建议 | 说明 | |------|------| | ✅ 自动化替代手动操作 | 使用 Python 脚本 + pandas 替代 Excel 批量合并,提高可靠性 | | ✅ 记录合并日志 | 输出每次合并的时间、文件列表、变更项,便于追溯 | | ✅ 加参数范围检查 | 在合并时验证数值是否在合理区间内(如延迟不能为负) | | ✅ 版本控制 | 将 `__item/` 中的所有文件 Git 管理,防止误删 | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值