Excel Application操作指南
概述
- 程序范围的设置和选项。这些选项大部分同“工具”菜单下的“选项”对话框里的内容相同。
- 顶级对象返回的方法,如ActiveCell、ActiveSheet等。
Application对象中其它对象的引用方法
Application.Workbooks(1).Worksheets(1).Cells(1,1)=20
Set xl=CreateObject("Excel.Sheet") xl.Application.Workbooks.Open "newbook.xls"
Application对象集合
AddIns集合表示所有当前加载的Excel Add-in。你可以像枚举其它对象一样在你的程序中列举出关于add-in的不同类型信息。下面的示例列举出当前加载到Excel中的Add-in的路径和名称。
Sub ListAddIns() Dim myAddin As AddIn For Each myAddin In AddIns MsgBox myAddin.FullName Next End Sub
这两个集合表示活动工作簿中的列和行。分别使用它们选择指定的列和行。
Application.Columns(4).Select
Application.Rows(5).Select
Dialogs集合包括Excel程序中所有的对话框。将在本文中后面部分更详细地讨论Dialogs集合。
Sheets集合返回指定或活动工作簿中所有工作表的集合。Sheets集合可以包含Chart或Worksheet对象。
下面示例打印出活动工作簿中所有的工作表。
Application.Sheets.PrintOut
For iSheet = 1 To Application.Sheets.Count If Not IsEmpty(Application.Sheets(iSheet).UsedRange) Then Application.Sheets(iSheet).PrintOut copies:=1 End If Next iSheet
Application对象的属性
- ActiveCell
- ActiveChart
- ActiveSheet
- ActiveWindow
- ActiveWorkbook
- RangeSelection
- Selection
- StatusBar
- ThisWorkbook
Application对象的ActiveCell属性返回一个表示活动工作簿中活动工作表的活动单元格的Range对象。如果你没有指定对象限定词,这个属性返回活动窗口的活动单元格。
Worksheets("Sheet1").Activate With ActiveCell.Font .Bold = True .Italic = True End With
ActiveChart属性返回表示活动图表的Chart对象,不管它是嵌入的图表还是图表工作表。在一个嵌入的图表被选择或激活时,它就是活动图表。下面的示例使用ActiveChart属性添加一个3维柱形图到月销售记录工作表中。
Sub AddChart() Charts.Add With ActiveChart .ChartType = xl3DColumn .SetSourceData Source:=Sheets("Sheet1").Range("B3:H15") .Location Where:=xlLocationAsObject, Name:="Monthly Sales" .HasTitle = True .ChartTitle.Characters.Text = Monthly Sales by Category End With End Sub
ActiveSheet属性返回一个表示当前选中的工作表(顶部工作表)的Worksheet对象。在一个工作簿中只有一个工作表能成为活动工作表。下面的示例显示活动工作表的名称。
MsgBox "The name of the active sheet is " & ActiveSheet.Name
Sub CopyActiveSheet() Dim x As Integer x = InputBox("Enter number of times to copy active sheet") For numtimes = 1 To x ' Put copies in front of Sheet1. ActiveWorkbook.ActiveSheet.Copy _ Before:=ActiveWorkbook.Sheets("Sheet1") Next End Sub
ActiveWindow属性返回一个表示活动窗口(顶部窗口)的Window对象。下面的示例显示活动窗口的名称(Caption属性)。
MsgBox "The name of the active window is " & ActiveWindow.Caption
Sub PrintWorksheet() Application.ScreenUpdating = False Sheets("Sales").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("Expenses").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End Sub
ActiveWorkbook属性返回一个表示活动窗口(顶部窗口)中的工作簿的Workbook对象。这个示例显示活动工作簿的名称。
MsgBox "The name of the active workbook is " & ActiveWorkbook.Name
Sub CalcBook() Dim wks As Worksheet Application.Calculation = xlManual For Each wks In ActiveWorkbook.Worksheets wks.Calculate Next Set wks = Nothing End Sub
RangeSelection属性返回一个表示指定窗口中工作表里选择的单元格的Range对象,即使在工作表中一个图表对象已经被选择或激活。这个示例显示活动窗口中工作表所选择单元格的地址。
MsgBox Application.ActiveWindow.RangeSelection.Address
这里介绍的语法RangeSelection.Name.Name在Office2003和2007中使用时都出现错误,如果该代码生效,必须先设置单元格A1的名称。并且应该不是单元格内容的前三个字符,而是名称的前三个字符。这应该是原文的疏漏。
Range("A1").Select MsgBox Left(ActiveWindow.RangeSelection.Name.Name, 3)
ActiveWindow.RangeSelection.Name.Name
Selection属性返回活动窗口中被选择的对象。例如,对于单元格,这个属性返回Range对象;对于图表,它返回Chart对象。如果使用属性而没有对象限定符,等于使用Application.Selection。
Worksheets("Sheet1").Activate Selection.Clear
NumRows = 0 For Each area In Selection.Areas NumRows = NumRows + area.Rows.Count Next area
Sub Count_Selection() Dim cell As Object Dim count As Integer count = 0 For Each cell In Selection count = count + 1 Next cell MsgBox count & " item(s) selected" End Sub
StatusBar属性返回或设置状态栏的文本。这个属性允许你更改在Excel窗口底部的状态栏中显示的信息。它对在运算过程需要较长时间来完成时让用户知道正在运行的进度非常有帮助。
Dim FileNum As Integer FileNum = 0 For Each file in Files ' Do something here. Application.StatusBar = "Now processing File " & FileNum FileNum = FileNum + 1 Next
Application.StatusBar = False
Sub ShowStatusBarProgress() Dim i As Long Dim pctDone As Double Dim numSquares As Long Const MAXSQR As Long = 15 For i = 1 To 30 pctDone = i / 30 numSquares = pctDone * MAXSQR Application.StatusBar = Application.Rept(Chr(31), numSquares) Application.Wait Now + TimeSerial(0, 0, 1) Nexti Application.StatusBar = False End Sub
ThisWorkbook属性返回一个表示当前运行的宏代码所在工作簿的 Workbook对象。这个属性允许载入宏定义包含代码的工作簿。这种情况下ActiveWorkbook属性并不起作用,因为活动工作簿可能并不是包含载入宏代码的工作簿。换句话说,ActiveWorkbook属性不返回载入宏工作簿;它返回调用载入宏的工作簿。如果你使用你的Visual Basic代码创建载入宏,你应该使用ThisWorkbook属性来限定任何必须运行在包含载入宏的工作簿上的语句。
ThisWorkbook.Close SaveChanges:=False
Private oExcel As Excel.Application Private wbk As Excel.Workbook Sub CloseOpenWrkBks() Dim wrkb As Workbook For Each wbk In Application.Workbooks If wrkb.Name <> ThisWorkbook.Name Then wbk.Close True End If Next wbk ThisWorkbook.Close True End Sub
Application对象方法
同GetOpenFilename方法不同,FindFile方法显示Open对话框并允许用户打开一个文件。如果新文件成功打开,此方法返回True。如果用户取消对话框,此方法返回False。
Sub OpenFile1( ) Dim bSuccess As Boolean Msgbox "Please locate the MonthlySales.xls file." bSuccess = Application.FindFile If Not bSuccess Then Msgbox "File not open." End If End Sub
Sub OpenFile2( ) Application.Dialogs(XlBuiltInDialog.xlDialogOpen).Show arg1:="Book1.xls" End Sub
- 打开Visual Basic编辑器。
- 单击菜单“视图”->“对象浏览器”,显示对象浏览器窗口,也可以按F2。
- 在搜索框中输入xlBuiltInDialog。
- 单击Search按钮。
GetOpenFilename 方法显示标准“打开”对话框并返回用户选择的文件名,实际上并未打开任何文件。GetOpenFilename方法给你最大的控制从你的程序中打开一个工作簿,因为它所做的就是以字符串返回用户选择的文件完整路径和文件名。获得文件名后接着做什么就取决于你自己了。例如,你可能传递结果给OpenText 方法。这个方法的语法如下(所有的参数都是可选的):
GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
Dim fileToOpen As String fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt") If fileToOpen <> "" Then MsgBox "Open " & fileToOpen End If
就像你估计的,InputBox方法显示一个对话框提示用户输入一个值。这个方法通过指定期望从用户获取的数据类型允许你有选择性地输入。
InputBox方法语法如下:
InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
Prompt是显示在对话框中的信息,在这里你可以让用户知道你期望的数据类型。
Title是在对话框顶部显示的标题。
Default是最初显示的默认值。
Left和Top用来指定对话框的位置。这些值以屏幕的左上角为参考点,单位是磅。
HelpFile和HelpContextID指定一个帮助文件。如果使用这些参数,在对话框中将包括一个Help按钮。
Type是返回的数据类型,默认值是Text。允许的数据类型如下表。
Value Type
0 公式,以字符串返回,只需要此参数
1 数值,你也可以在此包括一个返回一个数值的公式
2 文本(字符串)
4 逻辑数值(True或False)
8 一个单元格引用,Range对象
16 一个错误数值,如#N/A
64 数值列表
Set myRange = Application.InputBox(prompt := "Sample", type := 8)
Sub PrintActiveSheet() Dim TotalCopies As Long, NumCopies As Long Dim sPrompt As String, sTitle As String sPrompt = "How many copies do you want?" sTitle = "Prints the active sheet" TotalCopies = Application.InputBox(Prompt:=sPrompt, Title:=sTitle, Default:=1, Type:=1) For NumCopies = 1 To TotalCopies ActiveSheet.PrintOut Next NumCopies End Sub
Run方法执行一个宏或调用一个函数。你可以使用这个方法运行一个用VBA或Excel宏语言写的宏,或者运行一个动态链接库(DLL)或Excel加载宏(XLL)中的函数。XLL是Excel的加载宏,你可以使用任何支持创建DLLs的编译器来创建它。下面是此方法的语法:
Run(Macro, Arg1, , Arg30)
Sub UseRunMethod() Dim wks As Worksheet Dim rng As Range Set wks = Worksheets("Sheet2") Set rng = wks.Range("A1:A10") Application.Run "MyProc ", rng ' You could accomplish the same thing with: ' Call MyProc(rng) End Sub Sub MyProc(rng As Range) With rng.Font .Bold = True End With EndSub
Application对象事件
2. 在“属性”栏中,更改类的名称为appEventClass。
3. 在类模块的代码窗口,输入:
Public WithEvents Apply As Application
4. 现在测试一下,在代码窗口的对象列表中,单击“Apply”。
5. 在代码窗口中的过程列表中,单击Apply_WorkbookOpen. 这样将在代码窗口中添加一个自动生成的过程用于Apply_WorkbookOpen事件。
6. 修改该过程如下:
Private Sub Apply_WorkbookOpen(ByVal Wb As Workbook) MsgBox "你打开了工作簿。" End Sub
Private Sub Appl_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean) MsgBox "你关闭了工作簿。" End Sub
9. 加入下面的语句。
Dim ApplicationClass As New AppEventClass
Private Sub Workbook_Open() Set ApplicationClass.Appl = Application End Sub
11. 现在打开该工作簿来测试代码。Apply_WorkbookOpen事件将显示对话框。
12. 关闭工作簿,Apply_WorkbookBeforeClose将显示对话框。
13. 回到AppEventClass类模块,单击过程列表将显示很多你可以在程序中用来监控动作的事件。
Application对象的其它用法
在下面的例子中,首先关闭任何询问是否需要删除工作表的警告消息框,然后删除工作表,再设置使警告消息框生效。
Sub DeleteSheet() Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
这个例子在保存工作簿时没有提示用户。
Sub SaveWorksheet() Application.DisplayAlerts = False ActiveWorkbook.SaveAs "C:MonthlySales.xls" Application.DisplayAlerts = True End Sub
下面的例子使用SendKeys语句从Excel语句中复制一个区域的数据到Notepad程序中,并保存为文本文件。
Sub SKeys() Range("A1:D15").Copy ' Copy the range. SendKeys "% n", True ' Minimize Excel. Shell "notepad.exe", vbNormalFocus ' Start Notepad. SendKeys "^V", True ' Past the range data into Notepad. SendKeys "�", True ' Specify SaveAs. SendKeys "SalesData.txt", True ' Provide a file name. SendKeys "%S", True ' Save the file. Close notepad End Sub
你可以使用Application对象的OnTime方法在指定的时间或以固定时间间隔运行一个过程。OnTime方法的语法如下:
Application.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
Application.OnTime EarliestTime:= Now + TimeValue("00:05:00), _ Procedure := "YourProc"
Application.OnTime _ EarliestTime:=TimeValue("12:00:00"), _ Procedure:="YourProc"
Private Sub Workbook_Open() Application.OnTime Now + TimeValue("00:05:00"), "AutoSave" End Sub Private Sub Workbook_BeforeClose(Cancel AsBoolean) On Error Resume Next Application.OnTime Now + TimeValue("00:05:00"), "CleanUp", , False End Sub
结论
[@more@]Workbook 对象 应用示例 2009-12-29 21:37:01
[应用1] 创建新工作簿(Add方法)
使用Add方法在Workbooks集合中创建新工作簿,所创建的工作簿为活动工作簿。其语法为:
Workbooks.Add(Template)
参数Template可选,决定如何创建新工作簿。如果将该参数设置为已存在的Excel模板文件名称,那么将以该文件作为模板创建工作簿。该参数可以为下列XlWBATemplate常量之一:xlWBATChart(值-4109,代表图表)、xlWBATExcel4IntlMacroSheet(值4)、xlWBATExcel4MacroSheet(值3)、xlWBATWorksheet(值-4167,代表工作表)。在创建新工作簿时,如果指定该参数,那么将创建包含指定类型工作表的工作簿;如果省略该参数,那么将创建包含一定数量空工作表的工作簿,工作表数为SheetsInNewWorkbook属性所设置的数量。
应用示例1:创建一个新工作簿
Sub CreateNewWorkbook1() MsgBox "将创建一个新工作簿." Workbooks.Add End Sub
Sub CreateNewWorkbook2() Dim wb As Workbook Dim ws As Worksheet Dim i As Long MsgBox "将创建一个新工作簿,并预设工作表格式." Set wb = Workbooks.AddSet ws = wb.Sheets(1) ws.Name = "产品汇总表" ws.Cells(1, 1) = "序号" ws.Cells(1, 2) = "产品名称" ws.Cells(1, 3) = "产品数量" For i = 2 To 10 ws.Cells(i, 1) = i - 1 Next i End Sub
Sub testNewWorkbook() MsgBox "创建一个带有10个工作表的新工作簿" Dim wb As Workbook Set wb = NewWorkbook(10) End Sub Function NewWorkbook(wsCount AsInteger) As Workbook '创建带有由变量wsCount提定数量工作表的工作簿,工作表数在1至255之间 Dim OriginalWorksheetCount As Long Set NewWorkbook = Nothing IfwsCount < 1 Or wsCount > 255 Then Exit Function OriginalWorksheetCount = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = wsCount Set NewWorkbook = Workbooks.Add Application.SheetsInNewWorkbook = OriginalWorksheetCount End Function
[应用2] 打开工作簿(Open方法)
Open方法用于打开一个现有的工作簿,其语法为:
Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
参数FileName指定要打开的工作簿文件的名称,参数UpdateLinks指定更新工作簿中链接的方式,参数ReadOnly用来设置是否以只读方式打开工作簿。如果需要使用密码来打开工作簿,则应该将参数Password设置为该密码;如果需要使用密码打开工作簿但没有指定密码,则会弹出询问密码的对话框。参数AddToMru指定是否将工作簿添加到最近使用的文件列表中,建议将其设置为True,默认值为False。
应用示例4:以只读方式打开某工作簿
Sub openWorkbook2() Dim fname As String MsgBox "将D盘中的<测试.xls>工作簿以只读方式打开" fname = "D:测试.xls" Workbooks.Open Filename:=fname, ReadOnly:=True End Sub
使用Item属性返回Workbooks集合中特定的工作簿。例如:
Workbooks.Item(1)
Workbooks(1)
Workbooks("MyBook.xlsx")
Workbooks("Book2")
Workbooks("Book2.xlsx")
[应用4] 激活工作簿(Activate方法)使用Activate方法激活指定的工作簿,例如:
Workbooks("MyWorkbook").Activate
Workbooks.Count
如果工作簿以只读方式打开,那么ReadOnly属性的值为True。
[应用7] 获得工作簿的路径和名称(Name属性、FullName属性、Path属性、CodeName属性)
使用Workbook对象的Name属性可以返回工作簿的名称。例如,下面的函数可以返回当前工作簿的名称:
Function MyName() As String MyName = ThisWorkbook.Name End Function
Function MyName() As String MyName = ThisWorkbook.Name End Function
上述属性均为只读属性。
应用示例5:一些工作簿通用属性示例
Sub testGeneralWorkbookInfo() MsgBox "本工作簿的名称为" & ActiveWorkbook.Name MsgBox "本工作簿带完整路径的名称为" & ActiveWorkbook.FullName MsgBox "本工作簿对象的代码名为" & ActiveWorkbook.CodeName MsgBox "本工作簿的路径为" & ActiveWorkbook.Path If ActiveWorkbook.ReadOnly Then MsgBox "本工作簿已经是以只读方式打开" Else MsgBox "本工作簿可读写." End If If ActiveWorkbook.Saved Then MsgBox "本工作簿已保存." Else MsgBox "本工作簿需要保存." End If EndSub
使用Save方法保存对工作簿所作的所有更改,其语法为:
Workbook.Save
Sub SaveAllWorkbooks() Dim wbk As Workbook For Each wbk In Workbooks If wbk.Path <> "" Then wbk.Save Next wbk End Sub
[应用9] 保存工作簿(SaveAs方法)
使用SaveAs方法在指定的文件中保存对工作簿所做的更改,其语法为:
Workbook.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)
参数Password用于指定文件的保护密码,是一个区分大小写的字符串(最长不超过 15 个字符)。参数WriteResPassword指定文件的写保护密码,如果文件保存时带有密码,但打开文件时没有输入密码,则该文件以只读方式打开。
将参数ReadOnlyRecommended设置为True,则在打开文件时显示一条消息,提示该文件以只读方式打开。将参数CreateBackup设置为True,以创建一个备份文件。
参数AccessMode和参数ConflictResolution用来解决访问和冲突问题。
将参数AddToMru设置为True,以添加工作簿到最近使用的文件列表中。默认值为False。
应用示例7:创建新工作簿并保存
Sub AddSaveAsNewWorkbook() Dim Wk As Workbook Set Wk = Workbooks.Add Application.DisplayAlerts = False Wk.SaveAs Filename:="D:SalesData.xlsx"End Sub
应用示例8:另存已有的工作簿
Sub SaveWorkbook2() Dim oldName As String, newName As String Dim folderName As String, fname As String oldName = ActiveWorkbook.Name newName = "new" & oldName MsgBox "将<" & oldName & ">以<" & newName & ">的名称保存" folderName = Application.DefaultFilePath fname = folderName & "" & newName ActiveWorkbook.SaveAs fname End Sub
应用示例9:备份工作簿
Sub CreateBak1() MsgBox "保存工作簿并建立备份工作簿" ActiveWorkbook.SaveAs CreateBackup:=True End Sub
Sub CreateBak2() MsgBox "保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False." MsgBox ActiveWorkbook.CreateBackup End Sub
使用SaveCopyAs方法保存指定工作簿的一份副本,但不会修改已经打开的工作簿,其语法为:
Workbook.SaveCopyAs(Filename)
应用示例10:使用与活动工作簿相同的名称但后缀名为.bak来备份工作簿
Sub SaveWorkbookBackup() Dim awb As Workbook, BackupFileName As String, i As Integer, OK As Boolean If TypeName(ActiveWorkbook) = "Nothing"Then Exit Sub Set awb = ActiveWorkbook If awb.Path = "" Then Application.Dialogs(xlDialogSaveAs).Show Else BackupFileName = awb.FullName i = 0While InStr(i + 1, BackupFileName, ".") > 0 i = InStr(i + 1, BackupFileName, ".") Wend If i > 0 Then BackupFileName = Left(BackupFileName, i - 1) BackupFileName = BackupFileName & ".bak" OK = False On Error GoTo NotAbleToSave With awb Application.StatusBar = "正在保存工作簿..." .Save Application.StatusBar = "正在备份工作簿..." .SaveCopyAs BackupFileName OK = True End With End If NotAbleToSave: Set awb = Nothing Application.StatusBar = False If Not OK Then MsgBox "备份工作簿未保存!", vbExclamation, ThisWorkbook.Name End If End Sub
应用示例11:保存当前工作簿的副本到其它位置来备份工作簿
Sub SaveWorkbookBackupToFloppyD() Dim awb As Workbook, BackupFileName As String, i As Integer, OK As Boolean If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub Set awb = ActiveWorkbook If awb.Path = "" Then Application.Dialogs(xlDialogSaveAs).Show Else BackupFileName = awb.Name OK = False On Error GoTo NotAbleToSave If Dir("D:" & BackupFileName) <> "" Then Kill "D:" & BackupFileName End If With awb Application.StatusBar = "正在保存工作簿..." .Save Application.StatusBar = "正在备份工作簿..." .SaveCopyAs "D:" & BackupFileName OK = True End With End If NotAbleToSave: Set awb = Nothing Application.StatusBar = False If Not OK Then MsgBox "备份工作簿未保存!", vbExclamation, ThisWorkbook.Name End If End Sub
[应用11] 判断工作簿是否发生变化(Saved属性)
如果工作簿自上次保存以来没有发生任何变化,那么该工作簿的Saved属性值为True。由于该属性值
Excel Application操作指南的更多相关文章
- Dynamics AX 2012 R2 无法创建类"Excel.Application"的COM对象
Reinhard在做一个Excel导入项目时,发现X++代码一旦执行到Excel组件部分,就会报如下错误: 无法创建类"Excel.Application"的COM对象.请 ...
- 【解决】SQL Server作业中Excel Application不能访问文件
在通过SQL Server作业来实现定时任务时,出现如下错误: FullyQualifiedErrorId : ComMethodTargetInvocation使用“1”个参数调用“Add”时发生异 ...
- Excel.Application SaveAs 把excel转换为html
Excel.Application SaveAs 中的第二个参数的值: 可以直接用 10 进制的值代替左边的这些 xl 类型 . 例如:把excel转换为html的js: var oWB = oXL. ...
- NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别
NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别 1. Interop含义Interop是互操作的含义.Microsoft.Off ...
- Excel.Application手册
----转载:http://blog.csdn.net/xxfigo/article/details/6618129 定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明 ...
- Excel Application对象应用
Application对象是Excel对象模型中最高层级的对象,代表Excel应用程序自身,也包含组成工作簿的许多部分,包括工作簿.工作表.单元格集合以及它们包含的数据. Application对象包 ...
- Windows Server 2003 IIS 使用 Excel.Application
在Server2003服务器系统中,配置ASP调用CreateObject("Excel.Application")对象 1.先在服务器中安装Microsoft Excel 2.打 ...
- Excel.Application使用手册
Excel.Application组件使用方法,适合应用于使用EXCEL组件做WEB应用开发. 转自http://bbs.xtjc.com/thread-376095-1-1.html 定制模块行为( ...
- Excel.Application class
https://docs.microsoft.com/en-us/javascript/api/excel/excel.application?view=office-js Represents th ...
随机推荐
- 基于vs2015 SignalR开发的微信小程序使用websocket实现聊天功能
一)前言 在微信小程上实现聊天功能,大致有三种方式:1)小程序云开发 2)购买第三方IM服务 3)使用自己的服务器自己开发. 这里重要讲使用自己的服务器自己开发,并且是基于vs的开发. 网上提供的解决 ...
- Strongly Connected Tournament
题解: 有一个很重要的性质就是 对于一张完全强联通图来说 一定有一个强联通分量入度为0(或者出度为0) 然后就一些计数题的基本套路 https://www.cnblogs.com/onioncyc/p ...
- JDBC 数据源
概述 JNDI 数据源配置的相关内容已经在 JNDI 资源文档中详细介绍过.但从 Tomcat 用户的反馈意见来看,有些配置的细节问题非常棘手. 针对常用的数据库,我们已经给 Tomcat 用户提供了 ...
- python multiprocessing.freeze_support
Running on windows platform, give me an error as below: File "C:\Python\lib\multiprocessing\for ...
- 33.python之操作系统,进程,线程
转载:https://www.cnblogs.com/yuanchenqi/articles/6248025.html 操作系统 一 为什么要有操作系统? 现代计算机系统是由一个或者多个处理器,主存, ...
- 【python测试开发栈】—帮你总结Python os模块高频使用的方法
Python中的os模块是主要和系统操作相关的模块,在平时的工作中会经常用到,花时间整理了os模块的高频使用方法,同时整理出使用时需要注意的点.归纳来讲,os模块的方法可以分为:目录操作.文件操作.路 ...
- Java 8 默认接口实现及其他语言特性
一.为什么有默认接口实现 1.由于Java 8的API在现存的接口上引入了非常多的新方法(如List接口上的sort方法).在原有语法基础上,如Guava和Apache Commons这样的框架都需要 ...
- java面试-泛型
1.什么是泛型?泛型有什么作用? 泛型就是参数化类型,也就是所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. 在泛型出现之前, ...
- DOCKER学习_001:Docker简介
一 Docker简介 1.1 docker由来 Docker的英文翻译是“码头工人”,即搬运工,它搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App.我们的 ...
- vmware安装ubuntu的简单配置
介绍:ubuntu是一个桌面体验比较好的linux操作系统,尝试使用vmware安装一个虚拟机试用一下,做个简单记录,安装操作系统步骤省略 一.配置root用户,并使用root登录图像界面 Ubunt ...