最近无聊,看到个要把txt中的内容导入到word中的需求,当然了,word里是带表格的,要把txt中的内容解析后再分别放在word表格的指定位置,用java来做?想都没想,VBS正好可以干这个活啊!
test.html
<html>
<head>
<title>test</title>
</head>
<body>
<table align="center" border="1">
<tr>
<td colspan="4" align="center">导出txt内容到word文件<br></td>
</tr>
<tr>
<td>选择要导出<br>的txt文件</td>
<td width="80%"><input type="file" id="txtFile"></td>
</tr>
<tr>
<td>选择要导出<br>的word文件</td>
<td width="80%"><input type="file" id="wordFile"></td>
</tr>
<tr>
<td colspan="4" align="center"><input type="button" value="开始" onclick="chick()"></td>
</tr>
</table>
</body>
</html>
<SCRIPT LANGUAGE="vbscript">
Dim txtFile
Dim wordFile
function chick()
txtFile = document.getElementById("txtFile").value
wordFile = document.getElementById("wordFile").value
If Len(trim(txtFile)) = 0 Or Len(trim(wordFile)) = 0 Then
MsgBox "请选择文件!"
Else
dowrite()
End If
end function
function dowrite()
Set fso = CreateObject("Scripting.FileSystemObject")
Dim strAry()
Dim linCount
Dim strLine
ReDim strAry(1000)
Set TxtFile = fso.OpenTextFile(txtFile,1, False)
While Not TxtFile.AtEndOfStream
strLine = TxtFile.ReadLine
If Len(strLine) > 0 Then
strAry(linCount) = strLine
linCount = linCount + 1
End If
Wend
Set myDocApp = CreateObject("Word.Application")
myDocApp.Visible = True
myDocApp.Activate
myDocApp.Application.ScreenUpdating = False
set myDoc = myDocApp.Documents.Open(wordFile)
Set objSelection = myDocApp.Selection
For i = 0 To linCount-1
objSelection.Font.Name = "黑体"
objSelection.Font.Size = 22
objSelection.ParagraphFormat.Alignment = 1
objSelection.ParagraphFormat.LineSpacingRule = 0
objSelection.Font.Bold = true
objSelection.TypeText "检测报告单"&vbCrLf
objSelection.Font.Size = 12
objSelection.Font.Bold = false
Set table1 = objSelection.Tables.Add(objSelection.Range, 14, 6)
Set Table1 = myDoc.Tables(i+1)
With Table1
.PreferredWidthType = 2
.PreferredWidth = 100
.Columns.PreferredWidthType = 2
With .Borders(-2)
.LineStyle = 1
.LineWidth = 4
.Color = -16777216
End With
With .Borders(-4)
.LineStyle = 1
.LineWidth = 4
.Color = -16777216
End With
With .Borders(-1)
.LineStyle = 1
.LineWidth = 4
.Color = -16777216
End With
With .Borders(-3)
.LineStyle = 1
.LineWidth = 4
.Color = -16777216
End With
With .Borders(-5)
.LineStyle = 1
.LineWidth = 4
.Color = -16777216
End With
.Borders(-7).LineStyle = 0
.Borders(-8).LineStyle = 0
.Borders.Shadow = False
End With
With myDocApp.Options
.DefaultBorderLineStyle = 1
.DefaultBorderLineWidth = 4
.DefaultBorderColor = -16777216
End With
'合并单元格 开始
'第一行合并单元格
objSelection.MoveRight 1, 6, 1
objSelection.Cells.Merge
'第五行合并单元格
objSelection.MoveRight 1,2
objSelection.MoveDown 5,3
objSelection.MoveRight 1, 6, 1
objSelection.Cells.Merge
'第六行的第一二列合并单元格
objSelection.MoveRight 1,2
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第六行的第三四列合并单元格
objSelection.MoveRight 1,1
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第六行的第五六列合并单元格
objSelection.MoveRight 1,1
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第七行的第一二列合并单元格
objSelection.MoveRight 1,2
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第七行的第三四列合并单元格
objSelection.MoveRight 1,1
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第七、八、九行的第五六列合并单元格
objSelection.MoveRight 1,1
objSelection.MoveRight 1, 2, 1
objSelection.MoveDown 5,2,1
objSelection.Cells.Merge
'第八行的第一二列合并单元格
objSelection.MoveRight 1,2
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第八行的第三四列合并单元格
objSelection.MoveRight 1,1
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第九行的第一二列合并单元格
objSelection.MoveRight 1,3
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第九行的第三四列合并单元格
objSelection.MoveRight 1,1
objSelection.MoveRight 1, 2, 1
objSelection.Cells.Merge
'第十行合并单元格
objSelection.MoveRight 1,3
objSelection.MoveRight 1, 6, 1
objSelection.Cells.Merge
'第十一、十二、十三、十四行合并单元格
objSelection.MoveRight 1,2
objSelection.MoveRight 1, 6, 1
objSelection.MoveDown 5,3,1
objSelection.Cells.Merge
'合并单元格 结束
'填写内容 开始
Table1.Cell(1,1).Range.Text = "基本信息"
Table1.Cell(2,1).Range.Text = "样品编号"
Table1.Cell(2,2).Range.Text = Mid(strAry(i),21,15)
Table1.Cell(2,3).Range.Text = "姓名"
Table1.Cell(2,4).Range.Text = ""
Table1.Cell(2,5).Range.Text = "性别"
Table1.Cell(2,6).Range.Text = ""
Table1.Cell(3,1).Range.Text = "年 龄"
Table1.Cell(3,2).Range.Text = ""
Table1.Cell(3,3).Range.Text = "病历号"
Table1.Cell(3,4).Range.Text = ""
Table1.Cell(3,5).Range.Text = "床位号"
Table1.Cell(3,6).Range.Text = ""
Table1.Cell(4,1).Range.Text = "送检日期"
Table1.Cell(4,2).Range.Text = Mid(strAry(i),6,15)
Table1.Cell(4,3).Range.Text = "临床诊断"
Table1.Cell(4,4).Range.Text = ""
Table1.Cell(4,5).Range.Text = ""
Table1.Cell(4,6).Range.Text = ""
Table1.Cell(5,1).Range.Text = "检测结果"
Table1.Cell(6,1).Range.Text = "指标"
Table1.Cell(6,2).Range.Text = "检测值"
Table1.Cell(6,3).Range.Text = "阴阳性"
Table1.Cell(7,1).Range.Text = "0分钟(T0)"
Table1.Cell(8,1).Range.Text = "20分钟(T1)"
Table1.Cell(9,1).Range.Text = "差值"
Table1.Cell(9,2).Range.Text = Right(Left(strAry(i),5),4)
Table1.Cell(7,3).Range.Text = "阴性(<4.0)"&vbCrLf&"阳性(≥4.0)"
Table1.Cell(10,1).Range.Text = "结果评价"
objSelection.ParagraphFormat.Alignment = 3
Table1.Cell(11,1).Range.Text = ""&vbCrLf&"13C-UREA呼气试验Hp结果为:"
'填写内容 结束
objSelection.EndKey(6)
objSelection.ParagraphFormat.Alignment = 3
objSelection.TypeText "检验人: 检验日期:"&vbCrLf
If (i+1) Mod 2 = 1 Then
objSelection.TypeText ""&vbCrLf&"-------------------剪------------- 切---------------线---------------"&vbCrLf
End If
Next
myDoc.close()
myDocApp.quit()
end function
</SCRIPT>
附:
txt文件内容格式
test.txt
D 32009-05-1513:2009051503MJ 0.5NEGATIVE 2.1 2.3 4.000
D 42009-05-1513:2309051504DYD 1.0NEGATIVE 2.1 2.6 4.000
D 12009-05-1514:520136 12.3POSITIVE 2.2 2.5 4.000
D 22009-05-1514:550078 -0.2NEGATIVE 1.4 1.7 4.000
D 32009-05-1514:580001 -0.7NEGATIVE 2.3 2.6 4.000
分享到:
相关推荐
本篇将详细讲解如何使用源码实现从数据库中导出数据到Word、Excel和TXT文件。 首先,让我们了解一下这三个文件格式的特点: 1. **Word**:Microsoft Word是一款流行的文档处理软件,适用于创建结构化文档,如报告...
在本场景中,我们讨论的是如何利用FreeMarker来导出Word表格。这个过程通常涉及到以下步骤: 1. **创建Word模板**: 首先,你需要使用Microsoft Word创建所需的表格和格式。Word允许用户设计丰富的布局,包括...
在这个特定的场景中,我们关注的是如何使用Aspose.Word导出Word文档中的表格。 在.NET开发环境中,如Visual Studio 2015,可以利用Aspose.Word来处理Word文档,包括导出表格。首先,我们需要创建一个...
在Java编程中,有时我们需要处理来自不同文档格式的数据,例如从Word文档中提取表格内容,并将其转换成Excel文件。这通常涉及到使用Apache POI库,一个强大的API,用于读写Microsoft Office格式的文件,包括Word(....
在ASP.NET环境中,导出数据到Word表格是一项常见的任务,特别是在需要将动态生成的数据报告或者报表转换为可编辑、可打印的文档格式时。在这个场景中,ASP.NET 2005版本结合SQL Server 2000数据库,可以通过多种方式...
在Java编程环境中,导出Word文件是一项常见的任务,特别是在企业级应用中,如报表生成、文档自动化等场景。本文将详细讲解如何使用Java实现Word文件的导出,并结合提供的资源进行解析。 首先,Java导出Word文件通常...
在IT行业中,JavaScript是一种广泛使用的...对于压缩包中的"js导出Excel、word.html"文件,很可能是包含示例代码的网页,你可以通过查看和运行这段代码,更好地理解和学习JavaScript导出表格内容到Excel和Word的方法。
在这个例子中,我们将探讨如何使用POI库来处理Word文档,特别是利用模板文件循环输出表格行并导出新的Word文档。这个过程在数据分析、报告生成或自动化文档制作等场景中非常有用。 首先,我们需要理解Word文档的...
这个“PB数据窗口导出Word文件简单例子”是针对初学者的一个实践教程,旨在帮助他们理解如何利用PB的数据窗口功能将数据导出为Microsoft Word文档。这个例子可能包括了创建数据窗口对象、填充数据、以及执行导出操作...
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
本项目提供的"Table表格导出为Excel、csv、txt、sql、json、xml、Word格式"就是这样一个功能丰富的解决方案,它允许用户将网页中的表格数据方便地转换为多种常见格式。 首先,我们来详细了解一下这些文件格式的特点...
- Word文档更适合需要编辑和修改的内容,但`iReport`直接导出Word功能相对较弱,通常需要借助第三方库,如`JODConverter`或Apache POI。 - 先导出为PDF,然后利用`JODConverter`转换为Word格式。`JODConverter`...
在Java编程环境中,导出数据到PDF、Excel和Word格式是一项常见的需求,这通常涉及到文件处理和格式转换。以下是对这个主题的详细说明: 一、PDF(Portable Document Format)文件导出 PDF是一种通用的文件格式,...
这需要结合数据库查询结果,使用循环遍历数据并填充到Word表格中。同时,也可以使用模板引擎(如OpenTBS)来合并Word模板和数据源,生成定制化的报表。 5. **Web应用实践**: 文件名为"WebApplication1",可能是一...
在本教程中,我们将探讨如何利用Freemarker模板来导出Word文档,并实现循环插入图片和表格的功能。这对于需要批量生成定制化报告或者文档的应用场景非常有用。 首先,我们需要了解Freemarker的基本语法。在...
在IT领域,尤其是在软件开发中,常常需要将用户界面(UI)中的数据导出到不同的文件格式,如Word和Excel,以实现数据的持久化存储和处理。在本例中,我们将关注如何使用Qt框架来实现这个功能,特别是将用户在Qt界面...
windows下,使用python 将Excel中数据批量导出到Word模板中生成新的文件
在本文中,我们将深入探讨如何使用C# WinForm应用程序实现一系列功能,包括读取CAD文件、将CAD数据导入Word文档,处理Excel文件并将数据展示在表格中,以及利用Direct3D进行图形显示。这些功能在工程、设计和数据...
网络上的根据模板填充Word我都看过一些, 它们的功能在数据换行的时候用的是run对象的.addCarriageReturn()方法,或者是直接用\n实现换行。这些都不符合我的需求, 因为我要的是分段,而不是换行。换行的word导致另一...