`
SavageGarden
  • 浏览: 223270 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从txt文件中导出内容到word表格中

    博客分类:
  • VB
阅读更多
最近无聊,看到个要把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
分享到:
评论
2 楼 SavageGarden 2009-06-01  
onecainiao 写道

lz没有说明的几个问题。
1、必须是windows+office2000-2007
2、降低ie的安全性
3、如果提示创建对象错误,请在运行输入regsvr32 scrrun.dll

---------

ps:以上代码可以容易的转成 JavaScript

多谢楼上补充
1 楼 onecainiao 2009-05-22  

lz没有说明的几个问题。
1、必须是windows+office2000-2007
2、降低ie的安全性
3、如果提示创建对象错误,请在运行输入regsvr32 scrrun.dll

---------

ps:以上代码可以容易的转成 JavaScript

相关推荐

    将数据库数据导出到word excel txt文件中源码。

    本篇将详细讲解如何使用源码实现从数据库中导出数据到Word、Excel和TXT文件。 首先,让我们了解一下这三个文件格式的特点: 1. **Word**:Microsoft Word是一款流行的文档处理软件,适用于创建结构化文档,如报告...

    freemarker 导出word表格

    在本场景中,我们讨论的是如何利用FreeMarker来导出Word表格。这个过程通常涉及到以下步骤: 1. **创建Word模板**: 首先,你需要使用Microsoft Word创建所需的表格和格式。Word允许用户设计丰富的布局,包括...

    AsposeWord导出word表格wordtable

    在这个特定的场景中,我们关注的是如何使用Aspose.Word导出Word文档中的表格。 在.NET开发环境中,如Visual Studio 2015,可以利用Aspose.Word来处理Word文档,包括导出表格。首先,我们需要创建一个...

    Java读取Word中的表格(Excel),并导出文件为Excel

    在Java编程中,有时我们需要处理来自不同文档格式的数据,例如从Word文档中提取表格内容,并将其转换成Excel文件。这通常涉及到使用Apache POI库,一个强大的API,用于读写Microsoft Office格式的文件,包括Word(....

    asp.net导出数据到word表格

    在ASP.NET环境中,导出数据到Word表格是一项常见的任务,特别是在需要将动态生成的数据报告或者报表转换为可编辑、可打印的文档格式时。在这个场景中,ASP.NET 2005版本结合SQL Server 2000数据库,可以通过多种方式...

    Java导出Word文件

    在Java编程环境中,导出Word文件是一项常见的任务,特别是在企业级应用中,如报表生成、文档自动化等场景。本文将详细讲解如何使用Java实现Word文件的导出,并结合提供的资源进行解析。 首先,Java导出Word文件通常...

    js导出Excel 、Word [超实用][自动保存样式]

    在IT行业中,JavaScript是一种广泛使用的...对于压缩包中的"js导出Excel、word.html"文件,很可能是包含示例代码的网页,你可以通过查看和运行这段代码,更好地理解和学习JavaScript导出表格内容到Excel和Word的方法。

    POI使用word模板文件循环输出行并导出word

    在这个例子中,我们将探讨如何使用POI库来处理Word文档,特别是利用模板文件循环输出表格行并导出新的Word文档。这个过程在数据分析、报告生成或自动化文档制作等场景中非常有用。 首先,我们需要理解Word文档的...

    PB数据窗口导出Word文件简单例子

    这个“PB数据窗口导出Word文件简单例子”是针对初学者的一个实践教程,旨在帮助他们理解如何利用PB的数据窗口功能将数据导出为Microsoft Word文档。这个例子可能包括了创建数据窗口对象、填充数据、以及执行导出操作...

    java数据源导出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格式

    本项目提供的"Table表格导出为Excel、csv、txt、sql、json、xml、Word格式"就是这样一个功能丰富的解决方案,它允许用户将网页中的表格数据方便地转换为多种常见格式。 首先,我们来详细了解一下这些文件格式的特点...

    ireport导出pdf和word文档实例

    - Word文档更适合需要编辑和修改的内容,但`iReport`直接导出Word功能相对较弱,通常需要借助第三方库,如`JODConverter`或Apache POI。 - 先导出为PDF,然后利用`JODConverter`转换为Word格式。`JODConverter`...

    java导出文件到 pdf,excel,word

    在Java编程环境中,导出数据到PDF、Excel和Word格式是一项常见的需求,这通常涉及到文件处理和格式转换。以下是对这个主题的详细说明: 一、PDF(Portable Document Format)文件导出 PDF是一种通用的文件格式,...

    .net导出word,word表格打印,设置word单元格两种颜色,.net导出报表word版,.net word操作

    这需要结合数据库查询结果,使用循环遍历数据并填充到Word表格中。同时,也可以使用模板引擎(如OpenTBS)来合并Word模板和数据源,生成定制化的报表。 5. **Web应用实践**: 文件名为"WebApplication1",可能是一...

    freemarker模板导出word循环图片表格源码和详细教程

    在本教程中,我们将探讨如何利用Freemarker模板来导出Word文档,并实现循环插入图片和表格的功能。这对于需要批量生成定制化报告或者文档的应用场景非常有用。 首先,我们需要了解Freemarker的基本语法。在...

    qt 界面数据保存到Word文件和Excel文件

    在IT领域,尤其是在软件开发中,常常需要将用户界面(UI)中的数据导出到不同的文件格式,如Word和Excel,以实现数据的持久化存储和处理。在本例中,我们将关注如何使用Qt框架来实现这个功能,特别是将用户在Qt界面...

    Python将Excel中数据批量导出到Word模板中生成新的文件

    windows下,使用python 将Excel中数据批量导出到Word模板中生成新的文件

    winform出CAD到Word 导入Excel文件,将数据显示在表格中 导出数据到word文件中 direct3d图形显示

    在本文中,我们将深入探讨如何使用C# WinForm应用程序实现一系列功能,包括读取CAD文件、将CAD数据导入Word文档,处理Excel文件并将数据展示在表格中,以及利用Direct3D进行图形显示。这些功能在工程、设计和数据...

    java根据word模板导出Word文件,插入图片表格都可以

    网络上的根据模板填充Word我都看过一些, 它们的功能在数据换行的时候用的是run对象的.addCarriageReturn()方法,或者是直接用\n实现换行。这些都不符合我的需求, 因为我要的是分段,而不是换行。换行的word导致另一...

Global site tag (gtag.js) - Google Analytics