简单而实用的合并Excel文件的函数,能够将多个XLS文件中指定数量的工作表自动合并到一个XLS文件里。当然,如果只是数据合并,则使用ADO就可以实现,但如果要保留表格格式,则恐怕只能使用俺的方法了。
一、函数代码:
Option Explicit
'* ************************************************************** *
'* 函数名称:MergeXlsFile
'* 功能:自动合并指定路径下的所有XLS文件到一个文件中
'* 参数说明:strPath:需要合并的XLS文件所在路径。
'* SheetCount:需要合并的单个工作簿中工作表数量
'* 作者:lyserver
'* 联系方式:http://blog.csdn.net/lyserver
'* ************************************************************** *
Public Function MergeXlsFile(ByVal strPath As String, Optional ByVal SheetCount As Byte = 1) As Boolean
Dim i As Integer
Dim strSrcFile As String
Dim nRows As Long, nCols As Long, nSheets As Byte, nNewRows() As Integer
Dim xlApp As Object, xlSrcBook As Object, xlNewBook As Object, xlSheet As Object, xlRange As Object
......
有时,为了实现动态更新,我们需要对正处于运行状态的应用程序进行自删除,就像360安全卫士在线升级那样。但是,Windows是不允许删除正处于运行状态的应用程序的,怎么办?一般来说,我们可以使用两个程序来实现,一个专门负责版本检测和删除,一个才是业务需要的主应用程序。能不能将二者合二为一呢?答案是可以的,那就是使用BAT或VBS来进行。使用BAT,由于不能及时判断应用程序是否已经结束,于是人们通过降低其执行优先级别,让其晚于应用程序结束,从而达到删除目的,这种办法有时会造成删除失败,而使用VBS,可以利用Windows内置的COM对象,非常方便地判断应用程序是否结束,从而实现了真正意义上的自删除。不过相对于BAT,VBS也有一些缺点,那就是依赖性较强,而一部分计算机出于安全考虑,屏蔽了WSH功能,从而导致删除失败,从这一点来讲,反倒不及BAT方式了。
本文的实现代码基于VBS,至于使用BAT文件,可以参考张正秋写的《Windows核心编程》一书,俺不再提供实现代码。
'* ******************************************************* *
'* 程序名称:DelMe.bas
'* 程序功能:在VB中实现应用程序自删除
' ......
'* ************************************************************** *
'* 程序名称:modNtSrv
'* 程序功能:实现NT服务
'* 作者:lyserver
'* 联系方式:http://blog.csdn.net/lyserver
'* ************************************************************** *
Option Explicit
'服务控制常量
Public Enum SERVICE_CONTROL
SERVICE_CONTROL_STOP = 1&
SERVICE_CONTROL_PAUSE = 2&
SERVICE_CONTROL_CONTINUE = 3&
SERVICE_CONTROL_INTERROGATE = 4&
SERVICE_CONTROL_SHUTDOWN = 5&
End Enum
'服务状态常量
Public Enum SERVICE_STATE
SERVICE_STOPPED = &H1
SERVICE_START_PENDING = &H2
SERVICE_STOP_PENDING = &H3
SERVICE_RUNNING = &H4
SERVICE_CONTINUE_PENDING = &H5
SERVICE_PAUSE_PENDING = &H6
SERVICE_PAUSED = &H7
Delete = &H10000
End Enum
'服务启动方式常量
Public Const SERVICE_SYSTEM_START As Long = &H1
Pub ......
在python中如果要使用fork或者multiprocess来做多进程,假如import的库很多或者很大,例如wxpython,查看各进程的内存占用你会发现两个进程的内存占用基本上相同,换句话说,如果第二个进程根本不需要用到wx的内容,它也会被加载到内存当中去。就拿wx来做例子,没有import t wx占用大概8M+内存,一旦import wx,内存马上飚升到27M+,如此一来,两个进程就要占50m+。以上数据这只是对一个很小的python程序而言,要是一个需要导入很多库文件的程序,那情况可就不一样了。
经过几番尝试,笔者找到用__import__,在运行时再入库的方法。其实是非常简单的,例如以下例子:
from multiprocessing.managers import BaseManager
from multiprocessing import freeze_support
import os
class MyManager(BaseManager):
pass
global manager
if __name__ == '__main__':
freeze_support()
manager = MyManager()
switch = __import__("myclass",globals(),locals())
manager.register("C", myclass.C)
manager.start()
gui = __import__("mygui", globals(),locals())
mygui.manager = mana ......
根据浏览器复制到剪贴板的功能,具体代码如下:
var txt="要复制到剪贴板的内容";
function copyToClipboard(txt) {
if(window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
} else if(navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("你使用的F ......
/// <summary>
/// 判断是否为正小数
/// </summary>
/// <param name="str"></param>
/// <returns>为正小数时返回true,其他返回false</returns>
public static bool IsDecimal(string str)
{
//声明Regex对象变量
Regex objAlphaPatt;
//定义其规则
objAlphaPatt = new Regex(@"^0\.\d*[1-9]\d*$");
if (objAlphaPatt.IsMatch(str) == true)
{
return true;
}
else
{
return false;
}
} ......