我正在尝试从2个模板文本文件创建多个文本文件;但是,在每个新生成的文件中,应该添加一个从excel行拉出的新文本行。
例如:
template1文本文件内容
Line1
Line2
Line 3
template2文本文件内容
Line4
Line5
Excel文件有几行,每行都有不同的文本,例如
Row1text
Row2text
Row3text
所以我需要做的是从Excel行中提取文本并根据文本模板文件将其添加到新生成的文本文件中
所以结果会像这样
GeneratedText1.txt
Line1
Line2
Line 3
Row1text
Line4
Line5
GeneratedText2.txt
Line1
Line2
Line 3
Row2text
Line4
Line5
GeneratedText3.txt
Line1
Line2
Line 3
Row3text
Line4
Line5
excel中有多行,应该生成很多文本文件。新文件的名称也应该在某处预定义。最好的方法是什么?一些命令行会有帮助吗?
以下是我目前管理的内容:
@echo off
setlocal EnableDelayedExpansion
set i=1
for /f %%l in (input.cvs) do (
>GeneratedText!i!.txt type template1.txt
>>GeneratedText!i!.txt echo %%l
set /a i+=1
)
endlocal
答案 0 :(得分:0)
以下代码将两个文本模板文件与Excel工作表中的数据合并。您需要确定单元格范围,以及如何命名输出文件。
Option Explicit
Sub Create_Text_Files()
Dim strLineIn As String
Dim lRow As Long
' Determine Excel Range (Rows & Colums!!
For lRow = 2 To 5 '<<< Set your Range!!
Close #1 ' Just in case left open during testing
Close #2
Close #3
Open "C:\temp\TemplateFile1.txt" For Input As #1
Open "C:\temp\TemplateFile2.txt" For Input As #2
'Determine how to name your output files.
Open "C:\temp\TemplateOut" & lRow & ".txt" For Output As #3 ' Set Output File Name
'Write out TemplateFile1.txt
Do While Not EOF(1) ' Loop until end of file
Line Input #1, strLineIn
If EOF(1) Then Exit Do ' Avoid blank line
Print #3, strLineIn
Loop
Close #1
'Get your Excel data and write out
Print #3, Cells(lRow, 1) ' Change if multi column
'Write out TemplateFile2.txt
Do While Not EOF(2) ' Loop until end of file
Line Input #2, strLineIn
If EOF(2) Then Exit Do ' Avoid blank line
Print #3, strLineIn
Loop
Close #2
Close #3
Next lRow
End Sub
答案 1 :(得分:0)
这应该创建包含两个模板文件的文件以及它们之间的excel.txt文件中的一行,如图所示。
文件名来自excel行,不应包含毒药字符。
这是未经测试的:
@echo off
for /f "delims=" %%a in (excelfile.txt) do (
type "template1.txt" >"%%a.txt"
>>"%%a.txt" echo(
>>"%%a.txt" echo(%%a
>>"%%a.txt" echo(
type "template2.txt" >>"%%a.txt"
)