标题: [文本处理] 批处理怎样将文档内的每一行内容,输出到打印机并在显示器上面回显? [打印本页]
作者: mvklmvkl 时间: 2012-7-17 17:57 标题: 批处理怎样将文档内的每一行内容,输出到打印机并在显示器上面回显?
1.如何将EXCEL文档内的几排的内容 (如学员:姓名 学号:数字 转成单行形式的TXT文档内容) 就单一个姓名跟学号 为一行, 下面的跟着对齐
2.然后将转换过来的TXT文档,每一行的姓名和学号 打印到已经定好模版格式的宣传纸张上面(所以最好能自定义姓名和学号的打印位置),打印完成一个就在屏幕返回信息
作者: forfiles 时间: 2012-7-17 18:01
能否把你的原文档和转换之后的文档压缩一下传上来做个例子,大家好测试代码。
作者: mvklmvkl 时间: 2012-7-17 18:11
回复 2# forfiles
好的,我举一份!!
作者: CrLf 时间: 2012-7-17 19:54
不太明白“逐行打印”的要求
纯批不能读 excel,写个按顶楼规则将 excel 转为范本格式 txt 的 vbs:- path = "C:\Users\Administrator\Desktop\vbs\EXCEL例子.xls"
-
- Set exc = CreateObject("excel.application")
- exc.Visible = False
- exc.Workbooks.Open(path)
- exc.Worksheets(1).Activate
- h=exc.ActiveSheet.UsedRange.Rows.Count
- l=exc.ActiveSheet.UsedRange.Columns.Count
- For i=2 To h
- For j=1 To l
- val = exc.Cells(i,j)
- If Trim(val)="" Then
- str = str & vbNewLine
- Else
- str = str & val & Space(12-Lenb(val))
- End If
- Next
- str = str & vbNewLine
- Next
-
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set ts = fso.CreateTextFile(path & ".txt",1,ture)
- ts.Write str
- ts.Close
-
- exc.Quit
复制代码
学网上的,不过测试有效
作者: mvklmvkl 时间: 2012-7-17 21:12
回复 4# CrLf
你好,逐行打印就是,将每一行的姓名 和 学号 经打印机打出来,因为那些打印的纸张已经印刷好模版,只要在每一张纸张打印上一个学员的名字和学号就行了
作者: mvklmvkl 时间: 2012-7-18 00:30
继续求教!!
作者: mvklmvkl 时间: 2012-7-18 00:34
衷心期待,大家的帮助,感谢万分!
作者: mvklmvkl 时间: 2012-7-18 14:12
继续等,等到高手为止
作者: cjiabing 时间: 2012-7-18 15:29
有一两个doc转txt的工具,转换成后txt后,用for处理就可以了。
作者: CrLf 时间: 2012-7-19 02:07
表示不知“模板”长什么样,没办法定位。
批处理打印的话就是这样:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (要打印的.txt) do (
- if defined last (
- echo !last!&echo %%a
- set "last="
- )>prn else set last=%%a
- )
- ::两行两行打印文本
复制代码
复制代码
但不知通用性如何,vbs 的话则是:- path = "C:\Users\Administrator\Desktop\vbs\EXCEL例子.xls"
-
- Set exc = CreateObject("Excel.Application")
- exc.Visible = False
- exc.Workbooks.Open(path)
- exc.Worksheets(1).Activate
- exc.ActiveSheet.Printout
-
- exc.Quit
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |