您现在的位置是:主页 > news > 做海南旅游网站的初衷/汕头seo公司
做海南旅游网站的初衷/汕头seo公司
admin2025/5/11 11:14:45【news】
简介做海南旅游网站的初衷,汕头seo公司,Wordpress转jekyll,vs2013怎么做网站文本格式表格,常见的格式是csv或者tsv很多工作场景下,虽说Excel是主力数据处理工具,但很多情况下,从ERP或者其他系统软件中导出或者下载的数据都是csv,或者tsv格式的数据;这两种数据一般都是文本格式&#…

文本格式表格,常见的格式是csv或者tsv
很多工作场景下,虽说Excel是主力数据处理工具,但很多情况下,从ERP或者其他系统软件中导出或者下载的数据都是csv,或者tsv格式的数据;这两种数据一般都是文本格式,但又有表格的功能,一般我们会使用excel强行打开它处理;但因为格式的固定和文件访问速度快,更多的时候,我们会在一个较大型的VBA项目中“模块化”快速载入文本格式表格到EXCEL中间表的功能;
一、文本格式表格数据文件介绍:TSVCSV格式
CSV和TSV是以纯文本形式存储表格数据(数字和文本)的一种文件。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。如果是逗号分隔,文件格式就是CSV,如果是制表符载入,文件格式就是TSV;
经过我反复测试,发现tsv和csv文件的格式如下(因为有一些不可见字符,要反复测试才能摸清):
'【tsv文件格式】
'字段1 vbtab 字段2 vbtab ....字段3 vbcr vblf
'vbtab是制表符
'vbcr是回车符,vblf是换行符,这两个字符可以整合到一起表示vbCrLf
'【csv文件格式】
'和tsv类似,只是分割符变成了逗号
二、自编函数LoadTsvCsv()功能和接口介绍
'本函数访问TSV/CSV格式的文件,默认这个文件的第一行是表头,本函数传递一个一维数组(需要提取文件中的有效字段名称),返回一个二维数组,这个二维数组的第二维和传递的一维数组相同
'参数1:FileFullPath,文件路径
'参数2:需要提取的字段,用一个数组来表示, 如果这个数组是一个成员的数组且为“All”则返回所有字段
'参数3::ErrorInfo:0:无错误 1、文件不存在 2、文件无有效内容、3、文件中无指定读取的字段
Function LoadTsvCsv(FileFullPath As String, Arr() As Variant, ErrorInfo As Integer) As Variant()
用法:
1、将一个csv/tsv格式文件中的所有数据读入内存数组,用vba直接操作这个数据,得到想要的结果(这里只演示到内存数据赋值)
Dim ArrFilter(): ArrFilter = Array("All")
Dim Matrix()
Matrix = LoadTsvCsv(csvPath & "" & csvName, ArrFilter, loadErrorInfo)
2、我知道这个TSVCSV文件第一行是表头,表头有很多列,但我只想提取部分列
Dim ArrFilter(): ArrFilter = Array("姓名",“年龄”,“ID”)
Dim Matrix()
Matrix = LoadTsvCsv(csvPath & "" & csvName, ArrFilter, loadErrorInfo)
举例:
这是一个记录员工信息的csv文件,以上代码运行后,得到的数组如图2

图一:原始文件内容

图2:函数读取后的结果
三、自编函数LoadTsvCsv()源代码 (包含详细注释)
这里是我编写的一个函数,可以直接载入CSV或者TSV数据到excel中;
----------------------------------------------------------------------
'本函数访问TSV/CSV格式的文件,默认这个文件的第一行是表头,本函数传递一个一维数组(需要提取文件中的有效字段名称),返回一个二维数组,这个二维数组的第二维和传递的一维数组相同
'参数1:FileFullPath,文件路径
'参数2:需要提取的字段,用一个数组来表示, 如果这个数组是一个成员的数组且为“All”则返回所有字段
'参数3::ErrorInfo:0:无错误 1、文件不存在 2、文件无有效内容、3、文件中无指定读取的字段
Function LoadTsvCsv(FileFullPath As String, Arr() As Variant, ErrorInfo As Integer) As Variant()
Dim Delimiter As String
Dim FileXXX As String
Dim x() As String: x = VBA.Split(FileFullPath, ".")
FileXXX = x(UBound(x))
Select Case FileXXX
Case "csv": Delimiter =