项目作业中需要造数据,从txt文件中获取定长数据,直接从txt中修改,会显得十分麻烦,于是便利用excel自带的vba写了一个小工具。效果如下:

A1表示字段名,A2表示长度,A3是数据,也可以增加字段类型,自行拓展

点击“Create”按钮后,会在该excel文件目录下生成相应txt文件,txt文件的名字是自动获取此sheet页的名字

sheet名字

生成文件列表

文件内容

可自动生成多行数据

主要代码如下

 Sub inputdata_Click()
Dim cols As Integer
Dim rows As Integer
Dim str As String
Dim num As Integer
Dim nullStr As String
Dim strFileName As String cols = ActiveSheet.UsedRange.Columns.Count
rows = ActiveSheet.Range("A1048576").End(xlUp).Row
strFileName = ThisWorkbook.path & "\" & ActiveSheet.Name & ".txt"
str = ""
nullStr = "" If Dir(strFileName, ) <> Empty Then
Kill strFileName
End If For j = To rows
For i = To cols
num = ActiveSheet.Cells(, i)
If num - Len(ActiveSheet.Cells(j, i)) < Then
MsgBox "the char " & ActiveSheet.Cells(j, i) & "(row: " & j & ",col: " & i & ")" & "'s length is wrong !"
Exit Sub
End If
For k = To num - Len(ActiveSheet.Cells(j, i))
nullStr = nullStr & ""
Next
str = str & nullStr & ActiveSheet.Cells(j, i)
nullStr = ""
Next
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(strFileName, , True)
f.writeline str
f.Close
str = ""
Next MsgBox "input success"
End Sub

代码有缺陷,每循环一次就要创建一个读写实例,然后再关闭,影响效率,想把创建时提到循环前面,把close放到循环外面,试了一下,不晓得为什么会出问题。

本人vba初学,不是很懂,希望改善

excel表数据生成定长txt数据的更多相关文章

  1. Java随机生成定长纯数字或数字字母混合数

    (转)Java随机生成定长纯数字或数字字母混合数 运行效果图: 具体实现代码

  2. loadrunner socket协议问题归纳(4)---buffer接收变长和定长的数据

    测试场景:聊天系统 用户登录后,要先向服务器发送用户名,然后可以发送聊天信息,同时也可以接受聊天信息. 如果接受的字符为定长时,可以设定接受长度.recv buf2 66 #include " ...

  3. 生成定长随机数-可做3des密钥

    3DES加解密需要密钥支持,要求为8的倍数,一般会使用32位的字母数字随机字符串作为密钥. 下面这个工具类,可用做key值的生成,详见下方代码: package test; import java.u ...

  4. 关于导出Excel表中存在部门或用户数据权限问题

    /** * 导出Controller */ @RequiresPermissions("xxx:weeklightlimit:download") @RequestMapping( ...

  5. 从excel表中生成批量SQL,将数据录入到数据库中

    excel表格中有许多数据,需要将数据导入数据库中,又不能一个一个手工录入,可以生成SQL,来批量操作.     1.首先在第二行的H列,插入函数:=CONCATENATE("INSERT ...

  6. 从excel表中生成批量SQL

    excel表格中有许多数据,需要将数据导入数据库中,又不能一个一个手工录入,可以生成SQL,来批量操作.   ="insert into Log_loginUser (LogID, Logi ...

  7. python 获取excel表内容 生成php数组

    需求: 生成:同时处理数字类型,比如3 不能显示为3.0 [ ['type'=>3,'da_name'=>福建省平潭拓至美装饰工程有限公司,'da_aka'=>福建省平潭拓至美装饰工 ...

  8. java如何随机生成定长的字符串

    小数,字符串.时间等示例代码 String base = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 public c ...

  9. Jmeter----读取excel表中的数据

    Jmeter 读取excel数据使用的方法是使用CSV Data Set Config参数化,之后使用BeanShell Sampler来读取excel表中的数据 第一步.查看所需的接口都要哪些字段和 ...

随机推荐

  1. QT 文件拖放事件dropEvent和dragEnterEvent

    重载以下两个函数,可以实现将文本文件拖放进文本编辑器 void MainWindow::dragEnterEvent(QDragEnterEvent *event)//拖进事件 { if(event- ...

  2. 使用spring容器干掉if-else

    spring容器干掉if-else 场景说明 最近新做一个项目,需要对不同店铺的商品做不同处理.例如storeA需要进行handleA操作,storeB需要进行handleB操作,如此类推 大家很容易 ...

  3. 深度强化学习day01初探强化学习

    深度强化学习 基本概念 强化学习 强化学习(Reinforcement Learning)是机器学习的一个重要的分支,主要用来解决连续决策的问题.强化学习可以在复杂的.不确定的环境中学习如何实现我们设 ...

  4. Servlet 3.0异步特性初探

    Servlet 是 Java 为了编写服务端程序而定义的一个接口规范,在 Servlet 3.0 以后支持了异步的操作. 最近项目添加了一个代码热部署的功能,在客户端输入信号,信号到达 Web 服务器 ...

  5. cookie 和 session 区别

    二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有 ...

  6. 机器学习经典算法之KNN

    一.前言 KNN 的英文叫 K-Nearest Neighbor,应该算是数据挖掘算法中最简单的一种. 先用一个例子体会下. /*请尊重作者劳动成果,转载请标明原文链接:*/ /* https://w ...

  7. C++开发常见问题记录

    1.提示strcpy等函数不安全,建议使用strcpy_s等函数. 处理方法:在VS集成环境的 项目->属性->C/C++->预处理器->预处理器定义 中添加 _CRT_SEC ...

  8. 系统学习 Java IO (十一)----打印流 PrintStream

    目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基 ...

  9. Programming In Lua 第六章

    1, 2, 3,

  10. C++学习笔记 之 运算符

    用来执行特定的数字或逻辑操作,C++主要提供的运算符如下: 算数运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算数运算符: 主要运算符:+(加).-(减) .*(乘) ./(除) ...