当前位置:首页 > 实用技巧 >

tsv文档怎么转换excel(tsv格式怎样直接用excel打开)

来源:原点资讯(www.yd166.com)时间:2023-11-17 17:13:01作者:YD166手机阅读>>

tsv文档怎么转换excel,tsv格式怎样直接用excel打开(1)

文本格式表格,常见的格式是csv或者tsv

很多工作场景下,虽说Excel是主力数据处理工具,但很多情况下,从ERP或者其他系统软件中导出或者下载的数据都是csv,或者tsv格式的数据;这两种数据一般都是文本格式,但又有表格的功能,一般我们会使用excel强行打开它处理;但因为格式的固定和文件访问速度快,更多的时候,我们会在一个较大型的VBA项目中“模块化”快速载入文本格式表格到EXCEL中间表的功能;

一、文本格式表格数据文件介绍:TSV\CSV格式

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、我知道这个TSV\CSV文件第一行是表头,表头有很多列,但我只想提取部分列

Dim ArrFilter(): ArrFilter = Array("姓名",“年龄”,“ID”)

Dim Matrix()

Matrix = LoadTsvCsv(csvPath & "\" & csvName, ArrFilter, loadErrorInfo)

举例:

这是一个记录员工信息的csv文件,以上代码运行后,得到的数组如图2

tsv文档怎么转换excel,tsv格式怎样直接用excel打开(2)

图一:原始文件内容

tsv文档怎么转换excel,tsv格式怎样直接用excel打开(3)

图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 = ","

Case "tsv": Delimiter = vbTab

End Select

Dim i As Long

Dim j As Long

'以下代码是将TSV文件打开,并计算文件的行数和列数

If Dir(FileFullPath) = "" Then MsgBox FileFullPath & "不存在!": ErrorInfo = 1: Exit Function

Dim Fso As Object

Dim S As String

Set Fso = CreateObject("Scripting.FileSystemObject")

S = Fso.OpenTextFile(FileFullPath).ReadAll

Dim RowCount As Integer '定义两个整数变量存放行数和列数

Dim ColumnCount As Integer

Dim row() As String: row = VBA.Split(S, vbCrLf)

RowCount = UBound(row) - LBound(row) 1 - 1 '因为最后一行末尾也接了一个vbcrlf,所以数组成员的最后一位是""

If RowCount < 2 Then MsgBox FileFullPath & "无有效内容!": ErrorInfo = 2: Exit Function

Dim S0 As String: S0 = row(LBound(row)) '默认第一行是表头,将第一行的字符串读出来存放在S0中

Dim Col() As String: Col = VBA.Split(S0, Delimiter) '建立一个数组存放表头

'定义一个二维数组把结果返回出去

Dim tmp()

If UBound(Arr) = LBound(Arr) And Arr(LBound(Arr)) = "All" Then

ReDim tmp(LBound(row) To UBound(row) - 1, LBound(Col) To UBound(Col))

For i = LBound(row) To UBound(row) - 1 'row数组最后一项是空白的——因为TSV文件最后结束的vbcrlf,用split一定会有一个空的成员

Erase Col: Col = VBA.Split(row(i), Delimiter)

For j = LBound(Col) To UBound(Col)

tmp(i, j) = Col(j)

Next j

Next i

Else

Dim ArrID() As Integer: ReDim ArrID(LBound(Arr) To UBound(Arr))

'用参数2,规定提取字段的数组,确认col中的需要被提取字段的列号(维度2下标)

For i = LBound(Arr) To UBound(Arr)

If InStr(S0, Arr(i)) = 0 Then MsgBox FileFullPath & "文件中无指定读取的字段(" & Arr(i) & ")!": ErrorInfo = 3: Exit Function

For j = LBound(Col) To UBound(Col)

If Arr(i) = Col(j) Then ArrID(i) = j

Next j

Next i

ReDim tmp(LBound(row) To UBound(row) - 1, LBound(Arr) To UBound(Arr)) 'row数组最后一项是空白的——因为TSV文件最后结束的vbcrlf,用split一定会有一个空的成员

For i = LBound(row) To UBound(row) - 1 'row数组最后一项是空白的——因为TSV文件最后结束的vbcrlf,用split一定会有一个空的成员

Erase Col: Col = VBA.Split(row(i), Delimiter)

For j = LBound(Arr) To UBound(Arr)

tmp(i, j) = Col(ArrID(j))

Next j

Next i

End If

ErrorInfo = 0: LoadTsvCsv = tmp:

End Function

,

栏目热文

tsv格式如何转成excel(nvt格式怎么转换excel)

tsv格式如何转成excel(nvt格式怎么转换excel)

在d:盘abc文件夹中,将“学生名单.tsv”文件读入,并保存在相同文件夹中,命名为“332.xlsx”保存。impor...

2023-11-17 17:09:52查看全文 >>

tsv文件怎么转换成excel(tst格式文件怎么用excel打开)

tsv文件怎么转换成excel(tst格式文件怎么用excel打开)

CSV(Comma Separated Values)是一种以逗号分隔的文件格式,用于存储表格数据,可以支持多个表格数据...

2023-11-17 16:35:35查看全文 >>

沈阳云课软件(沈阳云课哪个app里有)

沈阳云课软件(沈阳云课哪个app里有)

今天讲了啥,不用愁!沈阳广播电视台联合沈阳新东方学校共同打造“沈阳云课通”,总结“沈阳云课”知识点,随堂笔记还给整理!下...

2023-11-17 17:19:00查看全文 >>

沈阳云课苹果手机版(沈阳云课试听课)

沈阳云课苹果手机版(沈阳云课试听课)

我市中小学校线上教学和线上辅导将于3月2日开始,为方便学生和家长选择适合的收看方式,保障如期顺利收看“沈阳云课”,特于3...

2023-11-17 17:10:24查看全文 >>

手机怎样观看沈阳云课(沈阳云课怎么在电脑上观看)

手机怎样观看沈阳云课(沈阳云课怎么在电脑上观看)

3月1日上午8:30-下午14:00是“沈阳云课”试播时间,在试播内容搜索中有疑问怎么办?小编汇总了咨询电话。1.用电视...

2023-11-17 16:55:01查看全文 >>

tsv文件怎么用word打开(tsv文件怎么用手机打开)

tsv文件怎么用word打开(tsv文件怎么用手机打开)

Word如何打开加密文档?此文档被加密无法编辑,Control N新建一个文档,点击插入附件,文件中的文字,选择刚刚被加...

2023-11-17 17:14:18查看全文 >>

tsv文件怎么转换(tsv文件转换成csv文件)

tsv文件怎么转换(tsv文件转换成csv文件)

通过一镜到底的方式,教授您转换csv文件的多种技巧。将csv文件直接拖入BIGEMAP GIS Ofic国产基础软件,同...

2023-11-17 17:02:28查看全文 >>

excel转tsv格式(excel怎么改成csv格式)

excel转tsv格式(excel怎么改成csv格式)

如下图所示今天要和大家分享的是,如何将Excel文件快速转为TSV文档(方方格子插件)1.动图演示2.选择方方格子按钮3...

2023-11-17 16:38:48查看全文 >>

sav文件如何转为excel(sav文件如何用excel打开)

sav文件如何转为excel(sav文件如何用excel打开)

在这个视频中,我们将介绍决策链统计软件的基本操作。首先,我们将介绍如何创建项目并导入数据表。打开“数据导入”选项,选择您...

2023-11-17 16:44:02查看全文 >>

excel如何修改gsv文件

excel如何修改gsv文件

如果你买了一件产品,你最好使用它。这一点尤其适用于K-12学校的官方人员,据软件和信息产业协会(Software and...

2023-11-17 16:34:50查看全文 >>

文档排行