用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件

这篇具有很好参考价值的文章主要介绍了用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件


需求

如下图所示,为了生成csv文件导入数据库,需要将下图 的 1 和 2 拼接成 如下 3 所示的一行数据,
开头为 1 ,往后为 2 的换行数据 将换行符 替换为 如 3 所示的 <br> , 同时 1 和 2 用双引号 括起来,中间用 逗号 隔开。

用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件,VBA,VB.net,.net,.net,VB.net,VBA


VB.net 代码如下

Imports System.IO

Class MainWindow

    Private Sub Button_Click(sender As Object, e As RoutedEventArgs)

        Dim AppXls As Microsoft.Office.Interop.Excel.Application        '声明Excel对象
        Dim AppWokBook As Microsoft.Office.Interop.Excel.Workbook       '声明工作簿对象
        Dim AppSheet As Microsoft.Office.Interop.Excel.Worksheet    '声明工作表对象

        AppXls = New Microsoft.Office.Interop.Excel.Application         '实例化Excel对象
        AppXls.Workbooks.Open("C:\wang\VB_family\VBA\tool\ReadExcelTest.xlsx") '打开已经存在的EXCEL文件
        AppXls.Visible = False                                          '使Excel不可见

        AppWokBook = AppXls.Workbooks(1) 'AppWokBook对象指向工作簿"C:\wang\VB系列\VBA\tool\ReadExcelTest.xlsx"
        AppSheet = AppWokBook.Sheets("Sheet1") 'AppSheet对象指向AppWokBook对象中的表“Sheet1”,即:"C:\wang\VB系列\VBA\tool\ReadExcelTest.xlsx"中的表“Sheet1”

        ' CSV文件路径
        Dim i, t
        Dim str As String
        Dim str_Tmp As String = ""
        Dim arr = AppSheet.UsedRange.Value
        Dim csvFilePath As String = "C:\wang\VB_family\VBA\tool\file.csv"

        ' 创建CSV文件并写入数据
        Using writer As New StreamWriter(csvFilePath)
            ' 写入标题行
            writer.WriteLine("msgId, msgInfo")

            ' 写入数据行
            For i = 5 To 12
                For Each t In Split(arr(i, 8), Chr(10)) '拆分第8列,如果第8列是单行,循环只执行一次
                    If str_Tmp = "" Then
                        str_Tmp = t
                    Else
                        str_Tmp = str_Tmp & "<br>" & t
                    End If
                Next t
                '生成第i行数据
                str = """" & arr(i, 7) & """," & """" & str_Tmp & """"
                writer.WriteLine(str)      '写入第i行数据
                str = ""                   '初始化数据
                str_Tmp = ""               '初始化数据
            Next i
        End Using

        MsgBox("CSV file generated successfully.")
        Console.WriteLine("CSV file generated successfully.")
        Console.ReadLine()

        '使用完毕必须关闭EXCEL,并退出
        AppXls.ActiveWorkbook.Close(SaveChanges:=True)
        AppXls.Quit()

    End Sub

End Class


VBA 代码如下

Attribute VB_Name = "模块1"
Option Explicit
Sub1()
    Dim arr, i, t
    Dim rowData_tmp As String
    Dim rowData As String
    Dim fileNumber As Integer
    Dim csvFilePath As String

    arr = activesheet.usedrange
    rowData_tmp = ""
    csvFilePath = "C:\wang\VB_family\VBA\tool\file_vba.csv"

    ' 打开CSV文件以进行写入
    fileNumber = FreeFile
    Open csvFilePath For Output As #fileNumber

    ' 写入数据行
    rowData = "msgId, msgInfo" ' CSV文件的列标题
    Print #fileNumber, rowData

    For i = 5 To 12
        For Each t In Split(arr(i, 8), Chr(10)) '拆分第8列,如果第8列是单行,循环只执行一次
            If rowData_tmp = "" Then
                rowData_tmp = t
            Else
                rowData_tmp = rowData_tmp & "<br>" & t
            End If
        Next t
        '生成第i行数据
        rowData = """" & arr(i, 7) & """," & """" & rowData_tmp & """"
        Print #fileNumber, rowData   '写入第i行数据
        rowData = ""                 '初始化数据
        rowData_tmp = ""             '初始化数据
    Next i

    ' 关闭CSV文件
    Close #fileNumber

    MsgBox "CSV文件已创建成功!"

End Sub


生成文件如下

file_vba.csv

msgId, msgInfo
"H220  G663","aaaaaaaaaaaaaaa1<br>bbbbbbbbbbbbbb1<br>cccccccccccccccc1"
"H220  G664","aaaaaaaaaaaaaaa2<br>bbbbbbbbbbbbbb2<br>cccccccccccccccc2"
"H220  G665","aaaaaaaaaaaaaaa3<br>bbbbbbbbbbbbbb3<br>cccccccccccccccc3"
"H220  G666","aaaaaaaaaaaaaaa4<br>bbbbbbbbbbbbbb4<br>cccccccccccccccc4"
"H220  G667","aaaaaaaaaaaaaaa5<br>bbbbbbbbbbbbbb5<br>cccccccccccccccc5"
"H220  G668","aaaaaaaaaaaaaaa6<br>bbbbbbbbbbbbbb6<br>cccccccccccccccc6"
"H220  G669","aaaaaaaaaaaaaaa7<br>bbbbbbbbbbbbbb7<br>cccccccccccccccc7"
"H220  G670","aaaaaaaaaaaaaaa8<br>bbbbbbbbbbbbbb8<br>cccccccccccccccc8"


总结

1 VB.NET Core WPF是一种用于开发Windows Presentation Foundation(WPF)应用程序的框架。它是基于VB.NET语言的.NET Core平台上的一个开发框架。

WPF是一种用于创建图形用户界面(GUI)的技术,它提供了许多丰富的可视化和交互功能。通过使用VB.NET语言和WPF,开发人员可以创建现代化和可定制的桌面应用程序。

在使用VB.NET Core WPF时,您可以利用.NET Core平台的许多优势,例如跨平台开发和高性能。您可以使用Visual Studio等集成开发环境来创建、调试和发布您的VB.NET Core WPF应用程序。


2 由于用到了 Microsoft.Office.Interop.Excel ,需要引入以下依赖。
用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件,VBA,VB.net,.net,.net,VB.net,VBA
用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件,VBA,VB.net,.net,.net,VB.net,VBA文章来源地址https://www.toymoban.com/news/detail-668754.html



到了这里,关于用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java读取Excel 单元格包含换行问题

    针对用户上传的Excel数据,或者本地读取的Excel数据。单元格中包含了换行,导致读取的数据被进行了切片。 正常读取如下图所示。 目前是把数据读取出来的cell转成字符串后,然后替换掉换行符即可。 换行符使用 n 进行替换。 代码如下: 读取结果:

    2024年02月16日
    浏览(44)
  • Python两种读取txt与csv文件方式(利用numpy处理数据)

    一共80个数据(只截取前10个数据) 在excel中显示的内容 在pycharm中显示的内容 一共80个数据 在记事本中显示的内容 在pycharm中显示的内容 1、读取所有内容 data_pd打印结果 2、数据转为numpy data_np打印结果 1、读取所有内容 data_pd打印结果 2、数据转为numpy data_np打印结果 1、读取所

    2023年04月11日
    浏览(59)
  • <VB.net>下CSV文件的导入(读取到DataGridView)和导出(DataGirdView保存到csv)

    VB.net项目主要使用微软旗下的Visual Studio 2022编辑器来进行,打开VS2022.新建一个VB.net窗体项目,保存。 然后在窗体上添加以下控件: DataGridView(数据表格控件)、Label(标签控件)、ContextMenuStrip(右键关联菜单控件)等 然后,设置DataGridView控件的contextmenustrip属性(关联到添

    2024年02月05日
    浏览(78)
  • .NET Web API设置响应输出的Json数据格式的两种方式

    在ASP.NET Core Web API中设置响应输出Json数据格式有两种方式,可以通过添加 System.Text.Json 或 Newtonsoft.Json JSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式,本文示例使用的是新的Minimal API模式。 System.Text.Json System.Text.Json是 .NET Core 3.0 及以上版本中内置的 J

    2024年01月18日
    浏览(43)
  • python 批量将图片存入excel单元格内

    https://blog.csdn.net/wuyoudeyuer/article/details/128185284 以下是一个示例程序,可以实现将指定目录下的所有图片存储到Excel单元格内。注意需要安装openpyxl库和Pillow库。 以上代码会将指定目录下所有的.jpg或.png文件存储到Excel单元格中,并将单元格大小调整为适应图片大小。需要注意的

    2024年01月21日
    浏览(52)
  • Excel·VBA单元格区域数据对比差异标记颜色

    之前的一篇博客《Excel·VBA单元格重复值标记颜色》,是对重复的整行标记颜色 而本文是按行对比2个单元格区域的数据,并对有差异的区域(一个单元格区域有的,而另一个单元格区域没有的)标记颜色,且只要存在任意1个字符不同的,则标记颜色 代码写为自定义函数使用

    2024年02月07日
    浏览(47)
  • 手机上玩.NET的两种方式

    少见!手机上玩 .NET_哔哩哔哩_bilibili 小米平板敲代码,termux安装dotnet和vscode_哔哩哔哩_bilibili 都是先容器加载linux rootfs,然后安装 linux-arm64 版本的 dotnet 命令行方式运行 dotnet,代码编辑到是可以安装使用 vscode。 推荐 虚拟电脑app

    2024年02月05日
    浏览(36)
  • VB 语言介绍以及VBA、宏(Macro)的关系

    1. 始祖 BASIC BASIC, Beginners’ All-purpose Symbolic Instruction Code,初学者通用符号指令代码。其目的是设计给初学者使用的程序设计语言。 BASIC是一门很古老的计算机语言,发表于1964年,由美国达特茅斯学院研发。BASIC代码通过BASIC解释器翻译为计算机能识别的机器指令,BASIC代码可

    2024年02月07日
    浏览(35)
  • python读取Excel绘制饼图的两种方式

    matplotlib 简单方便,适合数据作图或科学作图(论文发表) pyecharts 流程略复杂,但功能强大,图形具有交互式,适合项目开发或商业分析报告,但是 它是一个非常新的库,开发不稳定 本文介绍用 pandas库 读取Excel (csv)数据,分别用 matplotlib库 和 pyecharts库 绘制饼图。 注: 实

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包