Visual Basic 2017 操作Excel和word【2】持续更新……
1.控制台程序创建Excel,并设置状态栏显示“Hello World”文本
Module Module1 Private exitXL As Boolean = False
Dim WithEvents myExcelApp As Excel.Application 'withEvents 表示定义的变量具有相对应的事件,此处myExcelApp对象具有Excel.Application所对应的事件过程 Sub Main() myExcelApp = New Excel.Application
myExcelApp.Visible = True
myExcelApp.StatusBar = "Hello World"
myExcelApp.Workbooks.Add() While exitXL = False
'若没有这一句,控制台窗口将自动关闭,System.Windows.Forms.Application.DoEvents()方法可以使窗体处理其他事件,所以窗体能够进行重绘。不至于出现假死现象。
System.Windows.Forms.Application.DoEvents()
End While End Sub
Private Sub myExcelApp_SheetBeforeDoubleClick(ByVal sheet As Object, ByVal target As Excel.Range, ByRef cancel As Boolean) Handles myExcelApp.SheetBeforeDoubleClick
exitXL = True
End Sub End Module
运行结果:
2.实时显示60秒的倒计时效果
核心语句:System.Windows.Forms.Application.DoEvents()方法的作用
Imports System.Threading
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer =
While i >=
TextBox1.Text = i.ToString()
System.Windows.Forms.Application.DoEvents() '若我们去掉此行代码,则会出现界面卡死的现象,无法实现每隔一秒钟显示当前倒计时的效果。
i = i -
Thread.Sleep()
End While
End Sub
End Class
'*********************************************************************************************************
'* MSDN针对System.Windows.Forms.Application.DoEvents()的解释: *
'* 当运行Windows窗体时, 会创建新窗体, 然后窗体将等待处理各种事件, 而窗体每次处理事件时, *
'* 都会处理完与该事件关联的所有代码, 才会去处理其他事件, 这时其他事件将会在队列中等待。 *
'* 因此, 在处理事件时, 程序并不进行响应, 当然也不会进行窗口重绘操作。 *
'* 但是System.Windows.Forms.Application.DoEvents()方法可以使窗体处理其他事件,所以窗体能够进行重绘。 *
'*********************************************************************************************************
运行结果:
表2.1 显示Word的加载项对象的属性和方法的简表
属性或方法 |
名 称 |
返回类型 |
---|---|---|
属性 |
Application |
Application |
属性 |
Autoload |
Boolean |
属性 |
Compiled |
Boolean |
属性 |
Creator |
Int32 |
方法 |
Delete |
Void |
属性 |
Index |
Int32 |
属性 |
Installed |
Boolean |
属性 |
Name |
String |
属性 |
Parent |
Object |
属性 |
Path |
String |
清单2.3 完整的WordWiki实现(将文本文档test.txt中的内容以表格的形式存入word中)
Imports System.Collections.Generic
Imports System.Text
Imports System.IO
Imports Office = Microsoft.Office.Core
Imports Word = Microsoft.Office.Interop.Word Module Module1
Sub Main(ByVal args As String()) Dim theApplication As New Word.Application '定义word程序
theApplication.Visible = True '使word程序可视
Dim theDocument As Word.Document '定义word文档
theDocument = theApplication.Documents.Add() '为程序添加word文档 Dim reader As TextReader '定义Txt文本读取器
reader = New System.IO.StreamReader(My.Application.Info.DirectoryPath & "/test.txt") '实例化读取文本接口,My.Application.Info.DirectoryPath指的是本程序的\bin\Debug目录 Dim separators() As String '定义分隔符字符串
separators() = "||" '为分隔符变量赋值
Dim rowCount As Integer = '定义行数
Dim columnCount As Integer = '定义列数 ' 读取行并计算行数和列数
Dim rowList As New System.Collections.Generic.List(Of String) '定义字符串型的列表集对象
Dim row As String = reader.ReadLine() '读取文本存储器中的一行
While row IsNot Nothing '读取行没有到结尾
rowCount += '读取下一行
rowList.Add(row) '将所读取的一行文本存储在列表集对象中 ' 如果这是第一行,就计算列数
If rowCount = Then
Dim splitHeaderRow As String() = row.Split(separators, StringSplitOptions.None) 'StringSplitOptions.None,就是分开的数组元素包括空元素
columnCount = splitHeaderRow.Length - ' 忽略第一和最后一个分隔符
End If
row = reader.ReadLine()
End While ' 在word中创建一个表
Dim range As Word.Range = theDocument.Range() '定义文档单元格
Dim table As Word.Table = range.Tables.Add(range, rowCount, columnCount) '创建一个rowCount行columnCount列的表格 ' 操作word中所创建的表
Dim columnIndex As Integer =
Dim rowIndex As Integer = For Each r As String In rowList
Dim splitRow As String() = r.Split(separators, StringSplitOptions.None) 'StringSplitOptions.None,就是分开的数组元素包括空元素
For columnIndex = To columnCount
Dim cell As Word.Cell = table.Cell(rowIndex, columnIndex) '\bin\Debug目录中test.txt文件中的结尾不能有多余的空行,不然会提示超出索引范围而出现错误
cell.Range.Text = splitRow(columnIndex)
Next
rowIndex +=
Next ' 格式化表格
table.Rows().Range.Bold =
table.AutoFitBehavior(Word.WdAutoFitBehavior.wdAutoFitContent) 'AutoFitBehavior()方法的作用就是以某种方法调整表格,ord.WdAutoFitBehavior.wdAutoFitContent表示表格根据内容来调节 ' 退出前等待命令输入
System.Console.WriteLine("Table complete.")
System.Console.ReadLine() ' 没有保存更改而退出
theApplication.Quit(False)
End Sub
End Module
test.txt文档中的内容
||Property or Method||Name||Return Type|| |
运行结果:
Visual Basic 2017 操作Excel和word【2】持续更新……的更多相关文章
- Visual Basic 2017 操作Excel和word【1】持续更新……
我坚持在VB的路上走到黑………… 清单1.1 从应用程序对象导航到Excel中的工作表 Dim myWorkbooks As Excel.Workbooks = app.Workbooks ) ...
- 针对每种Windows Server 操作Excel、Word等Office组件遇到“ComException"、”80070005“等COM错误的解决方案大汇总
以下所有Excel错误的解决方案,同样适用于Word.PowerPoint等Office产品. 以下解决方案中,如果出现"安装Excel组件",是适用于遇到Excel错误的.如果是 ...
- Java操作Excel和Word
这是一个URL它提供了Java项目所推荐的处理此项目所用的类库 http://www.oschina.net/project/tag/258/excel-tools?company=0&sor ...
- POI(java 操作excel,word等)编程
一.下载所需jar包 下载地址:http://poi.apache.org/download.html http://download.csdn.net/detail/likai22/534250 二 ...
- Windows操作技巧 之二(持续更新)
定时自动关机 shutdown -s -t 3600 shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f /m \\computer] ...
- Windows 操作小技巧 之一(持续更新)
1.图片批量旋转 通常携带单反去景点排了大量照片回来处理图片时都会遇到很多横竖杂乱排序的图片难以处理的情形.现提供如下技巧进行处理. 1).在文件夹中添加"方向"的排列或分组选项: ...
- MYSQL操作的一些知识点,持续更新中····
基本概念——库 1.数据库服务器:库——>表——>行/列 2.cmd下链接: mysql – uroot –proot 3.创建库:create database php; 3.看数据库 ...
- Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010
摘 要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...
- VSTO:使用C#开发Excel、Word【10】
第二部分:.NET中的Office编程本书前两章介绍了Office对象模型和Office PIA. 您还看到如何使用Visual Studio使用VSTO的功能构建文档中的控制台应用程序,加载项和代码 ...
随机推荐
- centos共享目录
使用VirtualBOX自带的共享文件夹功能 运行环境: - 宿主机:windows 10 - 虚拟机:CentOS 7(我当初是按照Ubuntu环境下的教程弄的,所以其他Linux版本也可以参考 ...
- Spring 部分常用注解
最近在Spring-MVC的项目,把一些自己在项目中使用到的注解整理一下. 1.@Controller 对应表现层的Bean,也就是Struts中对应的Action: 使用这个注解之后,就是把当前Be ...
- 第九节 JS运动应用
多物体运动框架 多个物体同时运动 例子:多个Div,鼠标移入变宽 单定时器,存在问题 每个Div一个定时器 <!DOCTYPE html> <html lang="en&q ...
- Python引用拷贝赋值
先安利一个网站,对学习编程很有帮助:http://www.pythontutor.com/ 可以逐行可视化执行代码,具体自行体验啦 这个网站也是我在看别人的博文时候找到的,也先贴上别人的理解吧,我觉得 ...
- SIP 编解码器
编解码器,编码器 - 解码器的简称,做两个基本操作 - 首先,它将模拟语音信号转换为其等效数字形式,以便可以容易地发送. 此后,它将压缩的数字信号转换回其原始模拟形式,以便可以重放. 市场上有许多编解 ...
- 单元测试系列之七:Sonar 数据库表关系整理一(rule相关)
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/7510072.html 简介:Sonar ...
- luoguP1281 书的复制 DP,贪心
luoguP1281 书的复制 链接 https://www.luogu.org/problemnew/show/P1281 思路 简单dp,输出方案. 很明显dp记录路径对不对? 恭喜你死了. 求出 ...
- Learning-Python【1】:交互式环境与变量的使用
一.执行Python程序的两种方式 1. 交互式环境,打开cmd,输入python2或python3,显示提示符 “>>>”. 特点:输出代码立即执行 优点:调试程序方便 缺点:无法 ...
- easyUI使用datagrid-detailview.js实现二级列表嵌套
本文为博主原创,转载请注明: 在easyUI中使用datagrid-detailview.js可快速实现二级折叠列表,示例如下: 注意事项: 原本在谷歌浏览器进行示例测试的,url请求对应的json文 ...
- jsp/servlet学习五之jsp表达式语言初窥
EL表达式是jsp中最常用的表达式之一.EL表达式以${开头,并以}结束,例如${1+1}.el表达式可以返回任意类型的值,如果el表达式的结果是一个带属性的对象,则可以利用[]或者.运算来访问该属性 ...