VSTO开发指南(VB2013版) 第一章 Office对象模型
完美地将visual basic和office 办公软件结合起来。来自微软公司VSTO小组的权威专家所编著。
全书共712页,内容极其全面而深入,猛一看,厚地犹如庞然大物。看完离大神就不远了哦<^ . ^>!!!!!
《VSTO开发指南》是2008年2月电子工业出版社出版的图书,
作者是(美国)Eric Carter Eric Lippert
实例1:从Excel程序到Excel表 书本中的内容(第7页):
程序清单1.1. 在Excel中从Application对象到Worksheet
Dim myWorkbooks As Excel.Workbooks = app.Workbooks
Dim myWorkbook As Excel.Workbook = myWorkbooks.Item()
Dim myWorksheets As Excel.Sheets = myWorkbook.Worksheets
Dim myWorksheet As Excel.Worksheet
myWorksheet = CType(myWorksheets.Item(), Excel.Worksheet)
Visual basic 2013 中的控制台应用程序:
实现目标:获取第一个工作表的名称。
实现步骤:项目——>添加引用——>程序集——>扩展——>Microsoft.Office.Interop.Excel——>确定
实例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbooks As excel.Workbooks = app.Workbooks
Dim myWorkbook As excel.Workbook = myWorkbooks.Add()
Dim myWorkbook1 As excel.Workbook = myWorkbooks.Item()
Dim myWorksheets As excel.Sheets = myWorkbook1.Worksheets
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(myWorksheets.Item(), excel.Worksheet)
MsgBox(myWorksheet.Name)
End Sub End Module
也可以为代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbooks As excel.Workbooks = app.Workbooks
Dim myWorkbook As excel.Workbook = myWorkbooks.Add()
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(myWorkbook.Worksheets.Item(), excel.Worksheet)
MsgBox(myWorksheet.Name)
End Sub
End Module
也可以为代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbooks As excel.Workbooks = app.Workbooks
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(myWorkbooks.Add().Worksheets.Item(), excel.Worksheet)
MsgBox(myWorksheet.Name)
End Sub
End Module
也可以为代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(app.Workbooks.Add().Worksheets.Item(), excel.Worksheet)
MsgBox(myWorksheet.Name)
End Sub
End Module
实例效果:
简化程序清单1.1中的代码为:
书中的内容:
Dim myWorksheet As Excel.Worksheet
myWorksheet = CType(app.Workbooks.Item().Worksheets.Item(), Excel.Worksheet)
编写代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(app.Workbooks.Add().Worksheets.Add(), excel.Worksheet)
MsgBox(myWorksheet.Name)
End Sub End Module
实例效果:
注:区分程序、工作簿、工作表的概念,程序就是我们安装的Excel,程序可以创建多个工作簿,一个工作簿可以创建多个工作表。我们平时所说的Excel文件就是工作簿,而工作簿是要用程序来创建的。
实例1自续:创建Excel工作簿,再创建工作表,并在A1单元格中输入内容“这是A1”
实例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbook As excel.Workbook
Dim myWorksheet As excel.Worksheet
app.Visible = True
myWorkbook = app.Workbooks.Add()
myWorksheet = CType(myWorkbook.Sheets.Add(), excel.Worksheet)
myWorksheet.Cells(, ) = "这是A1"
End Sub
End Module
实例效果:
实例2:Excel表的count属性和item属性 书本中的内容(第7页):
程序清单1.2 以整数或字符串索引形式使用count和item属性对集合进行循环处理
Dim myWorkbooks As Excel.Workbooks = app.Workbooks Dim workbookCount As Integer = myWorkbooks.Count
For i As Integer = To workbookCount
' Get the workbook by its integer index
Dim myWorkbook As Excel.Workbook = myWorkbooks.Item(i) ' Get the workbook by its string index
Dim workbookName As String = myWorkbook.Name Dim myWorkbook2 As Excel.Workbook = _
myWorkbooks.Item(workbookName)
MsgBox(String.Format("Workbook {0}", myWorkbook2.Name))
Next
实例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbook As excel.Workbook
Dim myWorksheet As excel.Worksheet
app.Visible = True
myWorkbook = app.Workbooks.Add()
myWorksheet = CType(myWorkbook.Sheets.Add(), excel.Worksheet)
myWorksheet.Cells(, ) = "这是A1" Dim worksheetCount As Integer = myWorkbook.Worksheets.Count
For i As Integer = To worksheetCount
Dim str As String
str = myWorkbook.Worksheets.Item(i).Name '以整数作为索引
MsgBox(str, , "获取工作表名称")
Next For i As Integer = To worksheetCount
Dim str As String
str = myWorkbook.Worksheets.Item("sheet" & i).Name
MsgBox(str, , "获取工作表名称") '以字符串作为索引
Next
End Sub
End Module
实例效果:
实例2自续:编辑工作表sheet2中D3单元格,并填入“我是丑丑”
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbook As excel.Workbook
'Dim myWorksheet As excel.Worksheet
app.Visible = True
myWorkbook = app.Workbooks.Add()
'myWorksheet = CType(myWorkbook.Sheets.Add(, , 3,), Excel.Worksheet) '第3个参数表示添加多少工作表,这里添加3个,
Dim C4_sheet As excel.Worksheet = myWorkbook.Worksheets.Item("sheet2") '工作表的索引从0开始,
C4_sheet.Cells(, ) = "我是丑丑" 'Cells(行,列),也就是D3单元格 这里不能用range属性代替,应为range属性是只读属性
End Sub
End Module
实例效果:
实例3:学习For each循环结构 书本内容(第8页)
程序清单1.3 使用for each循环处理集合
Dim myWorkbooks As Excel.Workbooks = app.Workbooks
For Each workbook As Excel.Workbook In myWorkbooks
MsgBox(String.Format("Workbook {0}", workbook.Name))
Next
实例代码;
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbooks As excel.Workbooks = app.Workbooks
Dim myWorkbook As excel.Workbook = myWorkbooks.Add()
'Dim myWorkbook As excel.Workbook = myWorkbooks.Add("D:\职工人员表.xls")
For Each workbook As excel.Workbook In myWorkbooks
MsgBox(String.Format("Workbook {0}", workbook.Name))
Next End Sub
End Module
实例效果(不尽如人意):
改进实例:删除工作表
实例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbook As excel.Workbook = app.ActiveWorkbook
app.Visible = True
myWorkbook = app.Workbooks.Add("E:\工作簿1") '"工作簿1.xls"是一个模板,相当另外新建了一个"工作簿11.xls"并打开了
Dim myCollection As New Collections.Generic.List(Of excel.Worksheet)
For Each Name As excel.Worksheet In myWorkbook.Worksheets
myCollection.Add(Name)
Next
For Each name As excel.Worksheet In myCollection
name.Delete()
Next
End Sub
End Module
实例效果:
实例4:删除对象用集合 书本内容(8页)
程序清单1.4 删除对象时使用另一个集合
Dim myWorkbook As Excel.Workbook = app.ActiveWorkbook
Dim myCollection As New Collections.Generic.List(Of Excel.Name) For Each name As Excel.Name In myWorkbook.Names
myCollection.Add(name)
Next For Each name As Excel.Name In myCollection
name.Delete()
Next
注:代码中的Excel.Name并不字符串,而是一个对象。
实例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbook As excel.Workbook = app.ActiveWorkbook
app.Visible = True
myWorkbook = app.Workbooks.Add("E:\工作簿1") '"工作簿1.xls"是一个模板,相当另外新建了一个"工作簿11.xls"并打开了
Dim myCollection As New Collections.Generic.List(Of excel.Range)
For Each Name As excel.Range In myWorkbook.Worksheets("Sheet1").Range("A1:D5") '由于是删除,所以下面的行会自动向上缩进
myCollection.Add(Name)
Next
For Each name As excel.Range In myCollection
name.Delete() '由于是删除,所以下面的行会自动向上缩进
Next
End Sub
End Module
实例效果:
实例7:Word的application判断CapsLock属性值,书本第9页。
注:从实例7开始了Word,所以在引用里要添加“Microsoft.Office.Interop.Word”
程序清单1.5 返回值类型的属性:Word应用程序对象上的布尔型CapsLock属性
If app.CapsLock Then
MsgBox("CapsLock is on")
Else
MsgBox("CapsLock is off")
End If
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1 Sub Main()
Dim app As word.Application = New word.Application
If app.CapsLock Then
MsgBox("CapsLock is on")
Else
MsgBox("CapsLock is off")
End If
End Sub
End Module
实例效果:
实例7:判断word文档是最大化、最小化还是常规化,书本第11页
程序清单1.6 返回枚举的属性:Word应用程序对象上的windowstate属性
Select Case app.WindowState
Case Word.WdWindowState.wdWindowStateMaximize
MsgBox("Maximized")
Case Word.WdWindowState.wdWindowStateMinimize
MsgBox("Minimized")
Case Word.WdWindowState.wdWindowStateNormal
MsgBox("Normal")
End Select
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1 Sub Main()
Dim APP As word.Application = New word.Application
Dim myDocuments As word.Documents = APP.Documents
Dim myDocument As word.Document = myDocuments.Add()
APP.Visible = True
Select Case app.WindowState
Case word.WdWindowState.wdWindowStateMaximize
MsgBox("Maximized")
Case word.WdWindowState.wdWindowStateMinimize
MsgBox("Minimized")
Case word.WdWindowState.wdWindowStateNormal
MsgBox("Normal")
End Select
End Sub
End Module
实例效果:
实例7:活动文档(ActiveDocument),书本第11页
程序清单1.7 返回对象模型中的另一个对象属性:Word应用程序对象中的ActiveDocument属性
Dim myDocument As Word.Document = app.ActiveDocument
MsgBox(myDocument.Name)
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1 Sub Main()
Dim APP As word.Application = New word.Application
Dim myDocuments As word.Documents = APP.Documents
Dim myDocument As word.Document = myDocuments.Add()
APP.Visible = True
Dim myDocument1 As word.Document = APP.ActiveDocument
MsgBox(myDocument1.Name)
End Sub
End Module
实例效果:
实例8:没有活动文档的异常,书本第11页
程序清单1.8 可能抛出异常的属性:Word应用程序对象上的ActiveDocument属性
Dim myDocument As Word.Document
Try
myDocument = app.ActiveDocument
MsgBox(myDocument.Name)
Catch ex As Exception
MsgBox(String.Format("No active document: {0}", ex.Message)
End Try
示例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1 Sub Main()
Dim APP As word.Application = New word.Application
Dim myDocument As word.Document
APP.Visible = True
Try
myDocument = APP.ActiveDocument
MsgBox(myDocument.Name)
Catch ex As Exception
MsgBox(String.Format("No active document: {0}", ex.Message))
End Try
End Sub
End Module
实例效果:
实例9:没有打开Excel,就返回nothing书本第11页。
程序清单1.9 可能返回Nothing的属性:Excel应用程序对象中的ActiveWorkBook属性
Dim myWorkbook As Excel.Workbook = app.ActiveWorkbook If myWorkbook Is Nothing Then
MsgBox("No active workbook")
Else
MsgBox(myWorkbook.Name)
End If
实例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1 Sub Main()
Dim APP As excel.Application = New excel.Application
Dim myWorkbook As Excel.Workbook = app.ActiveWorkbook If myWorkbook Is Nothing Then
MsgBox("No active workbook")
Else
MsgBox(myWorkbook.Name)
End If
End Sub
End Module
实例效果:
实例10:Word应用程序的文件对话框(FileDialog)属性 第12页
注:实例10中出现了文件对话框,所以引用里要添加“Microsoft office 14.0 object library”,FileDialog来源于Microsoft.office.core.Filedialog。
程序清单1.10 需要枚举型参数并返回对象模型的属性:Word应用程序对象上的FileDialog属性
Dim dialog As Office.FileDialog
dialog = app.FileDialog(Office.MsoFileDialogType. _
msoFileDialogFilePicker)
dialog.Show()
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1
Sub Main()
Dim app As word.Application = New word.Application
Dim dialog As word.Dialog
dialog = app.Dialogs(word.WdWordDialog.wdDialogFileOpen)
dialog.Show()
End Sub
End Module
实例效果:
实例拓展(来自MSDN):
Imports word = Microsoft.Office.Interop.Word
Module Module1
Sub Main()
Dim app As word.Application = New word.Application
Dim dlg As word.Dialog = app.Dialogs(word.WdWordDialog.wdDialogFileOpen)
Dim dlgType As Type = GetType(word.Dialog)
' Set the Name property of the dialog box.
dlgType.InvokeMember("Name", _
Reflection.BindingFlags.SetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, New Object() {"Testing"}, _
System.Globalization.CultureInfo.InvariantCulture)
' Display the dialog box.
dlg.Show()
' Show the Name property.
MsgBox(dlgType.InvokeMember("Name", _
Reflection.BindingFlags.GetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, Nothing, _
System.Globalization.CultureInfo.InvariantCulture))
End Sub
End Module
实例效果:
实例11:Excel应用程序对象上的Range属性 书本第13页
程序清单1.11 具有可选参数的属性:Excel应用程序对象上的Range属性
' Omit the optional second parameter
Dim myRange As Excel.Range = app.Range("A1") ' Specify the optional second parameter
Dim myRange2 As Excel.Range = app.Range("A1", "B2")
实例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorkbooks As excel.Workbooks = app.Workbooks
Dim myWorkbook As excel.Workbook = myWorkbooks.Add("E:\工作簿1.xlsx")
app.Visible = True
Dim myRange As String = myWorkbook.Worksheets("sheet1").Range("A1").text
'Dim myRange2 As String = myWorkbook.Worksheets("sheet1").Range("A1", "B2").text
MsgBox(String.Format("单元格中的值:{0}", myRange))
End Sub
End Module
实例效果:
小结一下:
最单的一步到位的一种从程序到我们常见的工作表的代码写法:
'Earlier in this chapter, we presented this code as a simple way of navigating the object hierarchy of Excel to get a Worksheet object:
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(app.Workbooks.Item().Worksheets.Item(), excel.Worksheet)
'There is an even simpler way to write this code. It can be rewritten like this:
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(app.Workbooks().Worksheets(), excel.Worksheet)
Imports excel = Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim app As excel.Application = New excel.Application
Dim myWorksheet As excel.Worksheet
myWorksheet = CType(app.Workbooks.Add("E:\工作簿1.xlsx").Worksheets.Item("sheet1"), excel.Worksheet)
Dim myRange As String = myWorksheet.Range("A1").text
MsgBox(String.Format("单元格中的值:{0}", myRange))
End Sub
End Module
实例12 activate方法激活Word 书本第14页
程序清单 1.12 没有参数没有返回类型的方法:Word应用程序对象中的Activate方法
MsgBox("Activating the Word window.") app.Activate()
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1
Sub Main()
Dim app As word.Application = New word.Application
Dim myDocuments As word.Documents = app.Documents
Dim myDocument As word.Document = myDocuments.Add()
app.Visible = True
MsgBox("Activating the Word window.")
app.Activate()
End Sub
End Module
实例效果:
实例13 Word程序改变打开路径 书本第14页
程序清单1.13 具有参数但没有返回值的方法:Word应用程序对象中的ChangeFileOpenDirectory方法
app.ChangeFileOpenDirectory("c:\temp") MsgBox("Will open out of temp for this session.")
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1
Sub Main()
Dim app As word.Application = New word.Application
app.ChangeFileOpenDirectory("c:\temp")
Dim dialog As word.Dialog
dialog = app.Dialogs(word.WdWordDialog.wdDialogFileOpen)
dialog.Show()
End Sub
End Module
实例效果:
实例14 获得Word的像素值
程序清单1.14 没有参数但有返回值的方法:Word应用程序对象中的DefaultWebOptions方法
Dim options As Word.DefaultWebOptions = app.DefaultWebOptions() MsgBox(String.Format("Pixels per inch is {0}.", _
options.PixelsPerInch))
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1
Sub Main()
Dim app As word.Application = New word.Application
Dim options As word.DefaultWebOptions = app.DefaultWebOptions
MsgBox(String.Format("pixels per inch is {0}", options.PixelsPerInch))
End Sub
End Module
实例效果:
实例15 Word的属性CentimetersToPoints将厘米转换为对应的点数 书本第14页
程序清单1.15 具有参数和返回值的方法:Word应用程序对象中的CentimetersToPoints方法
Dim centimeters As Single = 15.0 Dim points As Single = app.CentimetersToPoints(centimeters) MsgBox(String.Format("{0} centimeters is {1} points.", _
centimeters, points))
实例代码:
Imports word = Microsoft.Office.Interop.Word
Module Module1
Sub Main()
Dim app As word.Application = New word.Application
Dim centimeters As Single = 15.0
Dim points As Single = app.CentimetersToPoints(centimeters)
MsgBox(String.Format("{0} centimeters is {1} points.", centimeters, points))
'1 centimeter = 28.34646 point
End Sub
End Module
实例效果:
实例16 Excel程序的CheckSpelling方法检查单词拼写 书本第15页
程序清单1.16 具有可选参数和返回值的方法:Excel应用程序对象中的CheckSpelling方法
Dim phrase1 As String = "Thes is spelled correctly."
Dim phrase2 As String = "This is spelled correctly AFAIK." Dim isCorrect1 As Boolean = app.CheckSpelling(phrase1)
Dim isCorrect2 As Boolean = app.CheckSpelling(phrase2, , True)
示例代码:
Imports excel = Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim app As excel.Application = New excel.Application
Dim phrase1 As String = "Thes is spelled correctly."
Dim phrase2 As String = "This is spelled correctly AFAIK."
Dim isCorrect1 As Boolean = app.CheckSpelling(phrase1)
Dim isCorrect2 As Boolean = app.CheckSpelling(phrase2, , True)
MsgBox("phrase1: " & isCorrect1 & Chr() & Chr() & "phrase2: " & isCorrect2)
End Sub
实例效果:
实例17 处理Excel Application 对象中WindowActivate事件 书本第17页
程序清单 1.17 处理Excel Application对象中WindowActivate事件的VSTO自定义机制
Public Class Sheet1 Public WithEvents app As Excel.Application Private Sub app_WindowActivate(ByVal Wb As Excel.Workbook, _
ByVal Wn As Excel.Window) Handles app.WindowActivate MsgBox("The window " & Wn.Caption & " was just activated.") End Sub Private Sub Sheet1_Startup(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Startup app = Me.Application End Sub End Class
实例代码:
Public Class sheet1
Public WithEvents app As Excel.Application
Private Sub app_WindowActivate(ByVal Wb As Excel.Workbook, ByVal Wn As Excel.Window) Handles app.WindowActivate
MsgBox("The window " & Wn.Caption & " was just activated.")
End Sub
Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
app = Me.Application
End Sub
End Class
实例效果:
实例18 WindowActivate事件动态添加和删除事件处理器 书本第19页
程序清单1.18 VSTO自定义机制,用于为Excel应用程序对象的WindowActivate事件动态添加和删除事件处理器
Public Class Sheet1 Public app As Excel.Application Private Sub MyWindowActivateHandler(ByVal Wb As _
Excel.Workbook, ByVal Wn As Excel.Window) MsgBox("The window " & Wn.Caption & " was just activated.")
RemoveHandler app.WindowActivate, _
AddressOf Me.MyWindowActivateHandler End Sub Private Sub Sheet1_Startup(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Startup app = Me.Application
AddHandler app.WindowActivate, _
AddressOf Me.MyWindowActivateHandler End Sub End Class
实例代码:
Public Class Sheet1 Public app As Excel.Application
Private Sub MyWindowActivateHandler(ByVal Wb As Excel.Workbook, ByVal Wn As Excel.Window)
MsgBox("The window " & Wn.Caption & " was just activated.")
RemoveHandler app.WindowActivate, AddressOf Me.MyWindowActivateHandler
End Sub
Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
app = Me.Application
AddHandler app.WindowActivate, AddressOf Me.MyWindowActivateHandler
End Sub End Class
实例效果:
VSTO开发指南(VB2013版) 第一章 Office对象模型的更多相关文章
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- 《NodeJs开发指南》第五章微博开发实例的中文乱码问题
在<NodeJs开发指南>第五章,按照书中的要求写好微博实例后,运行代码,发现中文显示出现乱码,原因是:views文件夹下的ejs文件的编码格式不是utf-8. 解决方法:以记事本方式打开 ...
- 《NodeJS开发指南》第五章微博实例开发总结
所有文章搬运自我的个人主页:sheilasun.me <NodeJS开发指南>这本书用来NodeJS入门真是太好了,而且书的附录部分还讲到了闭包.this等JavaScript常用特性.第 ...
- Pro ASP.NET Core MVC 第6版 第一章
目录 第一章 ASP.NET Core MVC 的前世今生 ASP.NET Core MVC 是一个微软公司开发的Web应用程序开发框架,它结合了MVC架构的高效性和简洁性,敏捷开发的思想和技术和.N ...
- HTTP权威指南阅读记录 - 第一章
最近终于开始看<HTTP权威指南>了,第一章主要是简介一些基本的概念.下面列出一些常用,但还不是很了解的简单概念. 一.常见概念: 1.媒体类型 因特网上有数千种不同的数据类型,HTTP仔 ...
- Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记
第一章 Thread导论 为何要用Thread ? 非堵塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...
- Java 螺纹第三版 第一章Thread介绍、 第二章Thread创建和管理学习笔记
第一章 Thread导论 为何要用Thread ? 非堵塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...
- 《JavaScript设计模式与开发实践》笔记第一章
第一章 面向对象的JavaScript 动态类型语言和鸭子类型 编程语言按照数据类型大体可以分为两类:静态类型语言.动态类型语言. 静态类型语言:在编译时便已确定变量的类型. 优点: 在编译时就能发现 ...
- 高性能MySQL(第4版) 第一章 MySQL架构 读书笔记
这本书去年11月出的,今年中文版也出了,并且直接上了微信读书,之后有空就读一读,分享下读书笔记~ 原文内容比较充实,建议有时间可以读一下原文. 第一章主要是个概览. MySQL的逻辑架构 默认情况下, ...
随机推荐
- ASP.Net Core 发布到IIS Http Error 502.5 官方解决办法
Http Error 502.5 - Process Failure 在IIS上发布.NET Core程序出现这个错误.网上搜索到的办法为什么总行不通呢? 有可能年代久远,现在的环境与当年不同,所以解 ...
- mysql5.7的基本使用
mysql的基本使用:最简单的增删改查 (建议用类似记事本的东西写代码,错了容易改) 以下就是这篇文章的代码 一,增和查 CREATE DATABASE one; 新建了一个名为one的数据库 S ...
- 在python开发工具PyCharm中搭建QtPy环境(详细)
在python开发工具PyCharm中搭建QtPy环境(详细) 在Python的开发工具PyCharm中安装QtPy5(版本5):打开“File”——“Settings”——“Project Inte ...
- Android Studio中Gradle sync failed
问题:Android Studio中更新同步Gradle 失败 Gradle sync failed: Could not find com.android.tools.build:gradle:3. ...
- C语言系列之实验楼笔记(一)
创建C程序的几个过程: 1.编辑:创建和修改C程序的源代码 2.编译:编译器可以将源代码转成机器语言.linux 这些文件扩展名.o 3.链接:通过一次完成编译和链接 4.执行;运行程序 打开xfce ...
- 死磕dtd(1)
看到安卓开发里大量的xml文件和layout里的Android UI开始复习一下xml xml的校验规则依据dtd dtd里面大小写敏感.....查找了好久才发现这个问题 <?xml versi ...
- Java 中序列化与反序列化
一. 序列化和反序列化概念 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.将程序中的对象,放入文 ...
- SQLYOG导入数据时报错,出现找不到Microsoft office 元驱动程式,并且无法安装64位office Access驱动
当我们使用mysql导入外部数据时(如Excel表),有时会出现如下的错误问题,即找不到64位access驱动.为了解决这个问题,我们需要下载相应的驱动,通过下图中的点击此链接即可进入下载页面(htt ...
- postman之上传文件
前言 小伙伴们在日常工作中有没测试过上传文件的接口呢?那么怎么用postman测试上传文件的接口呢?下面我们一起来学习吧! 需求:(1)上传接口地址:http://localhost:8080/pin ...
- 从Golang中open的实现方式看Golang的语言设计
Golang有很多优点: 开发高效:(C语言写一个hash查找很麻烦,但是go很简单) 运行高效:(Python的hash查找好写,但比Python高效很多) 很少的系统库依赖:(环境依赖少,一般不依 ...