excel表資料生成定長txt資料

2022-07-26 12:21:10 字數 2246 閱讀 9835

專案作業中需要造資料,從txt檔案中獲取定長資料,直接從txt中修改,會顯得十分麻煩,於是便利用excel自帶的vba寫了乙個小工具。效果如下:

a1表示欄位名,a2表示長度,a3是資料,也可以增加字段型別,自行拓展

點選「create」按鈕後,會在該excel檔案目錄下生成相應txt檔案,txt檔案的名字是自動獲取此sheet頁的名字

sheet名字

生成檔案列表

檔案內容

可自動生成多行資料

主要**如下

1

subinputdata_click()

2dim cols as

integer

3dim rows as

integer

4dim

stras

string

5dim num as

integer

6dim nullstr as

string

7dim strfilename as

string

89 cols =activesheet.usedrange.columns.count

10 rows = activesheet.range("

a1048576

").end(xlup).row

11 strfilename = thisworkbook.path & "

\" & activesheet.name & "

.txt"12

str = ""

13 nullstr = ""

1415

ifdir(strfilename, 16) <> empty then

16kill

strfilename

17end

if18

19for j = 3

torows

20for i = 1

tocols

21 num = activesheet.cells(2

, i)

22if num - len(activesheet.cells(j, i)) < 0

then

23msgbox

"the char

" & activesheet.cells(j, i) & "

(row:

" & j & "

,col:

" & i & "

)" & "

's length is wrong !"24

exit sub

25end

if26

for k = 1

to num - len

(activesheet.cells(j, i))

27 nullstr = nullstr & "0"

28next

29str = str & nullstr &activesheet.cells(j, i)

30 nullstr = ""

31next

32set fs = createobject("

scripting.filesystemobject")

33set f = fs.opentextfile(strfilename, 8, true

)34 f.writeline str

35f.close

36str = ""

37next

3839

msgbox

"input success"40

end sub

**有缺陷,每迴圈一次就要建立乙個讀寫例項,然後再關閉,影響效率,想把建立時提到迴圈前面,把close放到迴圈外面,試了一下,不曉得為什麼會出問題。

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

讀取excel和txt資料

1.建立乙個file檔案物件 並獲取資料 file file new file 檔案絕對位置 包含檔名和檔案字尾 2.建立乙個excel物件 workbook wb workbook.getworkbook file 3.獲取excel每頁的資訊 乙個excel 中可以有很多頁,在excel下方切換...

Eprime的txt資料轉換為excel

總結完整 如下 示例 import os import pandas as pd 如下 示例 path c users chengsi desktop sj encoding exp program 第二次後測 eprime儲存資料的資料夾 txt ls 提取.txt字尾的檔案 for root,d...

excel資料生成sql insert語句

excel 中有a b c三列資料,希望匯入到資料庫users表中,對應的字段分別是name,age 在你的excel 中增加一列,利用excel的公式自動生成sql語句,方法如下 1 增加一列 d列 2 在第一行的d列,就是d1中輸入公式 concatenate insert into users...