2010年03月04日

<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd“>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
<link href=”mycss.css” rel=”stylesheet” type=”text/css”>
<title>无标题文档</title>
<script language=”javascript”>
function LoadWindowUpDown(idd)
{
   var IDID=idd
   URL=”HuiDanPop.asp”+”?idid=”+IDID+”&ClientY=”+document.documentElement.scrollTop;
   loc_x=document.body.scrollLeft+event.clientX-event.offsetX+150;
   loc_y=document.body.scrollTop+event.clientY-event.offsetY-60;
   window.showModalDialog(URL,window,”edge:raised;scroll:0;status:0;help:0;resizable:1;dialogWidth:420px;dialogHeight:265px;dialogTop:”+loc_y+”px;dialogLeft:”+loc_x+”px”);
}
</script>
</head>
<body onload=”document.documentElement.scrollTop=<%=cint(request.Querystring(“ClientY”))%>”>
    </body>
</html>
子页面 HuiDanPop.asp

<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”936″%>
<!–#i nclude file=”../../conn.asp”–>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd“>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
<meta http-equiv=”Expires” CONTENT=”0″>
<meta http-equiv=”Cache-Control” CONTENT=”no-cache”>
<meta http-equiv=”Pragma” CONTENT=”no-cache”><title>无标题文档</title>
<BASE target=_self>
</head>

<body>
<%     Mouse_ClientY=request.querystring(“Mouse_ClientY”)
          
         %>
<input id=”txt0″ value=”<%=Mouse_ClientY%>” type=”hidden”>
<script language=javascript>
<!–

//获得父窗口传递来的滚动条位置值
{
window.returnValue = document.getElementById(“txt0″).value;
window.dialogArguments.location.reload(“HuiDan.asp”+”?ClientY=”+window.returnValue);
window.close();
}
//–>
</script>

</body>
</html>

2010年02月18日

ip的划分,超详细
IP和子网掩码
我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP
  A类IP段  0.0.0.0 到127.255.255.255
  B类IP段  128.0.0.0 到191.255.255.255
  C类IP段  192.0.0.0 到223.255.255.255
  XP默认分配的子网掩码每段只有255或0
  A类的默认子网掩码 255.0.0.0     一个子网最多可以容纳1677万多台电脑
  B类的默认子网掩码 255.255.0.0    一个子网最多可以容纳6万台电脑
  C类的默认子网掩码 255.255.255.0   一个子网最多可以容纳254台电脑
  我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。
  要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。)
  把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串连续的1和一串连续的0组成的(一共4段,每段8位,一共32位数)。
  255.0.0.0   11111111.00000000.00000000.00000000
  255.255.0.0  11111111.11111111.00000000.00000000
  255.255.255.0 11111111.11111111.11111111.00000000
  这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制,那就是11111111.11111111.11111111.00000000,后面有8颗0,那m就是8,255.255.255.0这个子网掩码可以容纳2的8次方(台)电脑,也就是256台,但是有两个IP是不能用的,那就是最后一段不能为0和255,减去这两台,就是254台。我们再来做一个。
  255.255.248.0这个子网掩码可以最多容纳多少台电脑?
  计算方法:
  把将其转换为二进制的四段数字(每段要是8位,如果是0,可以写成8个0,也就是00000000)
  11111111.1111111.11111000.00000000
  然后,数数后面有几颗0,一共是有11颗,那就是2的11次方,等于2048,这个子网掩码最多可以容纳2048台电脑。
  一个子网最多可以容纳多少台电脑你会算了吧,下面我们来个逆向算法的题。
  一个公司有530台电脑,组成一个对等局域网,子网掩码设多少最合适?
  首先,无疑,530台电脑用B类IP最合适(A类不用说了,太多,C类又不够,肯定是B类),但是B类默认的子网掩码是255.255.0.0,可以容纳6万台电脑,显然不太合适,那子网掩码设多少合适呢?我们先来列个公式。
  2的m次方=560
  首先,我们确定2一定是大于8次方的,因为我们知道2的8次方是256,也就是C类IP的最大容纳电脑的数目,我们从9次方一个一个试2的9次方是512,不到560,2的10次方是1024,看来2的10次方最合适了。子网掩码一共由32位组成,已确定后面10位是0了,那前面的22位就是1,最合适的子网掩码就是:11111111.11111111.11111100.00000000,转换成10进制,那就是255.255.252.0。
  分配和计算子网掩码你会了吧,下面,我们来看看IP地址的网段。
  相信好多人都和偶一样,认为IP只要前三段相同,就是在同一网段了,其实,不是这样的,同样,我样把IP的每一段转换为一个二进制数,这里就拿IP:192.168.0.1,子网掩码:255.255.255.0做实验吧。
  192.168.0.1
  11000000.10101000.00000000.00000001
  (这里说明一下,和子网掩码一样,每段8位,不足8位的,前面加0补齐。)
  IP    11000000.10101000.00000000.00000001
  子网掩码  11111111.11111111.11111111.00000000
  在这里,向大家说一下到底怎么样才算同一网段。
  要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢?各类IP的网络标识算法都是不一样的。A类的,只算第一段。B类,只算第一、二段。C类,算第一、二、三段。
  算法只要把IP和子网掩码的每位数AND就可以了。
  AND方法:0和1=0 0和0=0 1和1=1
  如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位
  IP      11000000.10101000.00000000.00000001
  子网掩码    11111111.11111111.11111111.00000000
  得出AND结果  11000000.10101000.00000000.00000000
  转换为十进制192.168.0.0,这就是网络标识,
  再将子网掩码反取,也就是00000000.00000000.00000000.11111111,与IP AND
  得出结果00000000.00000000.00000000.00000001,转换为10进制,即0.0.0.1,
  这0.0.0.1就是主机标识。要想在同一网段,必需做到网络标识一样。
  我们再来看看这个改为默认子网掩码的B类IP
  如IP:188.188.0.111,188.188.5.222,子网掩码都设为255.255.254.0,在同一网段吗?
  先将这些转换成二进制
  188.188.0.111 10111100.10111100.00000000.01101111
  188.188.5.222 10111100.10111100.00000101.11011010
  255.255.254.0 11111111.11111111.11111110.00000000
分别AND,得
  10111100.10111100.00000000.00000000
  10111100.10111100.00000100.00000000
  网络标识不一样,即不在同一网段。
  判断是不是在同一网段,你会了吧,下面,我们来点实际的。
  一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适?
  子网掩码不说了,前面算出结果来了11111111.11111111.11111100.00000000,也就是255.255.252.0
  我们现在要确定的是IP如何分配,首先,选一个B类IP段,这里就选188.188.x.x吧
  这样,IP的前两段确定的,关键是要确定第三段,只要网络标识相同就可以了。我们先来确定网络号。(我们把子网掩码中的1和IP中的?对就起来,0和*对应起来,如下:)
  255.255.252.0 11111111.11111111.11111100.00000000
  188.188.x.x  10111100.10111100.??????**.********
  网络标识   10111100.10111100.??????00.00000000
  由此可知,?处随便填(只能用0和1填,不一定全是0和1),我们就用全填0吧,*处随便,这样呢,我们的IP就是
  10111100.10111100.000000**.********,一共有530台电脑,IP的最后一段1~254可以分给254台计算机,530/254=2.086,采用进1法,得整数3,这样,我们确定了IP的第三段要分成三个不同的数字,也就是说,把000000**中的**填三次数字,只能填1和0,而且每次的数字都不一样,至于填什么,就随我们便了,如00000001,00000010,00000011,转换成二进制,分别是1,2,3,这样,第三段也确定了,这样,就可以把IP分成188.188.1.y,188.188.2.y,188.188.3.y,y处随便填,只要在1~254范围之内,并且这530台电脑每台和每台的IP不一样,就可以了。
  有人也许会说,既然算法这么麻烦,干脆用A类IP和A类默认子网掩码得了,偶要告诉你的是,由于A类IP和A类默认子网掩码的主机数目过大,这样做无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码^_^

键盘上每个键作用!!! (史上最全的)
F1帮助
F2改名
F3搜索
F4地址
F5刷新
F6切换
F10菜单
CTRL+A全选
CTRL+C复制
CTRL+X剪切
CTRL+V粘贴
CTRL+Z撤消
CTRL+O打开
SHIFT+DELETE永久删除
DELETE删除
ALT+ENTER属性
ALT+F4关闭
CTRL+F4关闭
ALT+TAB切换
ALT+ESC切换
ALT+空格键窗口菜单
CTRL+ESC开始菜单
拖动某一项时按CTRL复制所选项目
拖动某一项时按CTRL+SHIFT创建快捷方式
将光盘插入到CD-ROM驱动器时按SHIFT键阻止光盘自动播放
Ctrl+1,2,3… 切换到从左边数起第1,2,3…个标签
Ctrl+A 全部选中当前页面内容
Ctrl+C 复制当前选中内容
Ctrl+D 打开“添加收藏”面版(把当前页面添加到收藏夹中)
Ctrl+E 打开或关闭“搜索”侧边栏(各种搜索引擎可选)
Ctrl+F 打开“查找”面版
Ctrl+G 打开或关闭“简易收集”面板
Ctrl+H 打开“历史”侧边栏
Ctrl+I 打开“收藏夹”侧边栏/另:将所有垂直平铺或水平平铺或层叠的窗口恢复
Ctrl+K 关闭除当前和锁定标签外的所有标签
Ctrl+L 打开“打开”面版(可以在当前页面打开Iternet地址或其他文件…)
Ctrl+N 新建一个空白窗口(可更改,Maxthon选项→标签→新建)
Ctrl+O 打开“打开”面版(可以在当前页面打开Iternet地址或其他文件…)
Ctrl+P 打开“打印”面板(可以打印网页,图片什么的…)
Ctrl+Q 打开“添加到过滤列表”面板(将当前页面地址发送到过滤列表)
Ctrl+R 刷新当前页面
Ctrl+S 打开“保存网页”面板(可以将当前页面所有内容保存下来)
Ctrl+T 垂直平铺所有窗口
Ctrl+V 粘贴当前剪贴板内的内容
Ctrl+W 关闭当前标签(窗口)
Ctrl+X 剪切当前选中内容(一般只用于文本操作)
Ctrl+Y 重做刚才动作(一般只用于文本操作)
Ctrl+Z 撤消刚才动作(一般只用于文本操作)
Ctrl+F4 关闭当前标签(窗口)
Ctrl+F5 刷新当前页面
Ctrl+F6 按页面打开的先后时间顺序向前切换标签(窗口)
Ctrl+F11 隐藏或显示菜单栏
Ctrl+Tab 以小菜单方式向下切换标签(窗口)
Ctrl+Enter 域名自动完成[url=]http://www.**.com[/url](内容可更改,Maxthon选项→地址栏→常规)/另:当输入焦点在搜索栏中时,为高亮关键字
Ctrl+拖曳 保存该链接的地址或已选中的文本或指定的图片到一个文件夹中(保存目录可更改,Maxthon选项→保存)
Ctrl+小键盘’+' 当前页面放大20%
Ctrl+小键盘’-' 当前页面缩小20%
Ctrl+小键盘’*' 恢复当前页面的缩放为原始大小
Ctrl+Alt+S 自动保存当前页面所有内容到指定文件夹(保存路径可更改,Maxthon选项→保存)
Ctrl+Shift+小键盘’+' 所有页面放大20%
Ctrl+Shift+小键盘’-' 所有页面缩小20%
Ctrl+Shift+F 输入焦点移到搜索栏
Ctrl+Shift+G 关闭“简易收集”面板
Ctrl+Shift+H 打开并激活到你设置的主页
Ctrl+Shift+N 在新窗口中打开剪贴板中的地址,如果剪贴板中为文字,则调用搜索引擎搜索该文字(搜索引擎可选择,Maxthon选项→搜索)
Ctrl+Shift+S 打开“保存网页”面板(可以将当前页面所有内容保存下来,等同于Ctrl+S) 
Ctrl+Shift+W 关闭除锁定标签外的全部标签(窗口)
Ctrl+Shift+F6 按页面打开的先后时间顺序向后切换标签(窗口)
Ctrl+Shift+Tab 以小菜单方式向上切换标签(窗口)
Ctrl+Shift+Enter 域名自动完成
Alt+1 保存当前表单
Alt+2 保存为通用表单
Alt+A 展开收藏夹列表
资源管理器
END显示当前窗口的底端
HOME显示当前窗口的顶端
NUMLOCK+数字键盘的减号(-)折叠所选的文件夹
NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容
NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹
向左键当前所选项处于展开状态时折叠该项,或选定其父文件夹
向右键当前所选项处于折叠状态时展开该项,或选定第一个子文件夹
自然键盘
【窗口】显示或隐藏“开始”菜单
【窗口】+F1帮助
【窗口】+D显示桌面
【窗口】+R打开“运行”
【窗口】+E打开“我的电脑”
【窗口】+F搜索文件或文件夹
【窗口】+U打开“工具管理器”
【窗口】+BREAK显示“系统属性”
【窗口】+TAB在打开的项目之间切换
辅助功能
按右边的SHIFT键八秒钟切换筛选键的开和关
按SHIFT五次切换粘滞键的开和关
按NUMLOCK五秒钟切换切换键的开和关
左边的ALT+左边的SHIFT+NUMLOCK切换鼠标键的开和关
左边的ALT+左边的SHIFT+PRINTSCREEN切换高对比度的开和关
运行
按“开始”-“运行”,或按WIN键+R,在『运行』窗口中输入:
(按英文字符顺序排列)
%temp%———打开临时文件夹
.————–C:\DocumentsandSettings\用户名所在文件夹
..————-C:\DocumentsandSettings
…————我的电脑
\————–C盘
appwize.cpl—-添加、删除程序
access.cpl—–辅助功能选项
Accwiz———辅助功能向导
cmd————CMD命令提示符
command——–CMD命令提示符
chkdsk.exe—–Chkdsk磁盘检查
certmgr.msc—-证书管理实用程序
calc———–启动计算器
charmap——–启动字符映射表
cintsetp——-仓颉拼音输入法
cliconfg——-SQLSERVER客户端网络实用程序
clipbrd——–剪贴板查看器
control——–打开控制面板
conf———–启动netmeeting
compmgmt.msc—计算机管理
cleanmgr——-垃圾整理
ciadv.msc——索引服务程序
dcomcnfg——-打开系统组件服务
ddeshare——-打开DDE共享设置
dxdiag———检查DirectX信息
drwtsn32——-系统医生
devmgmt.msc—-设备管理器
desk.cpl——-显示属性
dfrg.msc——-磁盘碎片整理程序
diskmgmt.msc—磁盘管理实用程序
dvdplay——–DVD播放器
eventvwr——-一个事情查看器
eudcedit——-造字程序
explorer——-打开资源管理器
fsmgmt.msc—–共享文件夹管理器
firewall.cpl—WINDOWS防火墙
gpedit.msc—–组策略
hdwwiz.cpl—–添加硬件
iexpress——-木马捆绑工具,系统自带
inetcpl.cpl—-INTETNET选项
intl.cpl——-区域和语言选项(输入法选项)
irprops.cpl—-无线链接
joy.cpl——–游戏控制器
lusrmgr.msc—-本机用户和组
logoff———注销命令
main.cpl——-鼠标
mem.exe——–显示内存使用情况
migwiz———文件转移向导
mlcfg32.cpl—-邮件
mplayer2——-简易widnowsmediaplayer
mspaint——–画图板
msconfig.exe—系统配置实用程序
mstsc———-远程桌面连接
magnify——–放大镜实用程序
mmc————打开控制台
mmsys.cpl——声音和音频设备
mobsync——–同步命令
ncpa.cpl——-网络连接
nslookup——-IP地址侦测器
netstartX—-开始X服务
netstopX—–停止X服务
netstat-an—-命令检查接口
netsetup.cpl—无线网络安装向导
notepad——–打开记事本
nslookup——-IP地址侦探器
narrator——-屏幕“讲述人”
ntbackup——-系统备份和还原
ntmsmgr.msc—-移动存储管理器
ntmsoprq.msc—移动存储管理员操作请求
nusrmgr.cpl—-用户账户
nwc.cpl——–NetWare客户服务
osk————打开屏幕键盘
odbcad32——-ODBC数据源管理器
odbccp32.cpl—ODBC数据源管理器
oobe/msoobe/a-检查XP是否激活
packager——-对象包装程序
perfmon.msc—-计算机性能监测程序
powercfg.cpl—电源选项
progman——–程序管理器
regedit——–注册表
rsop.msc——-组策略结果集
regedt32——-注册表编辑器
regsvr32/?—-调用、卸载DLL文件运行(详细请在cmd中输入regsvr32/?)
sapi.cpl——-语音
services.msc—本地服务设置
syncapp——–创建一个公文包
sysedit——–系统配置编辑器
sigverif——-文件签名验证程序
sndrec32——-录音机
sndvol32——-音量控制程序
shrpubw——–共享文件夹设置工具
secpol.msc—–本地安全策略
sysdm.cpl——系统
syskey———系统加密(一旦加密就不能解开,保护windowsxp系统的双重密码)
services.msc—本地服务设置
sfc.exe——–系统文件检查器
sfc/scannow—windows文件保护
shutdown——-关机命令(详细请在cmd中输入shutdown/?)
taskmgr——–任务管理器
telephon.cpl—电话和调制解调器选项
telnet———远程连接程序
timedate.cpl—日期和时间
tourstart——xp简介(安装完成后出现的漫游xp程序)
tsshutdn——-60秒倒计时关机命令
utilman——–辅助工具管理器
winver———检查Windows版本
winmsd———系统信息
wiaacmgr——-扫描仪和照相机向导
winchat——–XP自带局域网聊天
wmimgmt.msc—-打开windows管理体系结构(WMI)
wordpad——–写字板
wuaucpl.cpl—-自动更新
wupdmgr——–windows更新程序
write———-写字板
wscript——–windows脚本宿主设置
wscui.cpl——安全中心
C:/windows/fonts字体

2010年01月24日

如内容超出单元格,则隐藏
style="TABLE-LAYOUT: fixed"

弹出窗口总是在最上面: <body onblur="this.focus();">
不要滚动条? 让竖条没有: <body style=’overflow:scroll;overflow-y:hidden’> </body>
横条没有: <body style=’overflow:scroll;overflow-x:hidden’> </body>
两个都去掉?更简单了 <body scroll="no"> </body>
怎样去掉图片链接点击后,图片周围的虚线? <a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>
电子邮件处理提交表单 <form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain"> <input type=submit> </form>
在打开的子窗口刷新父窗口的代码里如何写? window.opener.location.reload()
如何设定打开页面的大小 <body onload="top.resizeTo(300,200);">
在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动 <html><head> <STYLE> body {background-image:url(logo.gif); background-repeat:no-repeat; background-position:center } </STYLE> </head> <body bgproperties="fixed" > </body> </html>

各种样式的光标 auto :标准光标
default :标准箭头
hand :手形光标
wait :等待光标
text :I形光标
vertical-text :水平I形光标
no-drop :不可拖动光标
not-allowed :无效光标
help :?帮助光标
all-scroll :三角方向标
move :移动标
crosshair :十字标 e-resize n-resize nw-resize w-resize s-resize se-resize sw-resize

本机ip<%=request.servervariables("remote_addr")%>
服务器名<%=Request.ServerVariables("SERVER_NAME")%>
服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服务器端口<%=Request.ServerVariables("SERVER_PORT")%>
服务器时间<%=now%> IIS
版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
脚本超时时间<%=Server.ScriptTimeout%>
本文件路径<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服务器解译引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
服务器操作系统<%=Request.ServerVariables("OS")%>

文本竖排方式
<style type="text/css">
<!–
.shupai {Writing-mode:tb-rl}
–>
</style>
超链接去虚线边框
在链接中加上onfocus="this.blur()"

网页搜索关键字 头里插入
<META NAME="keywords" CONTENT="xxxx,xxxx,xxx,xxxxx,xxxx,">

收藏夹图标
<link rel = "Shortcut Icon" href="favicon.ico">

我的电脑
file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
网上邻居
file:///::%7B208D2C60-3AEA-1069-A2D7-08002B30309D%7D
我的文档
file:///::%7B450D8FBA-AD25-11D0-98A8-0800361B1103%7D
控制面板
file:///::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}
回收站
file:///::%7B645FF040-5081-101B-9F08-00AA002F954E%7D

鼠标控制图片隐现效果
把如下代码加入<body>区域中:
<SCRIPT language="javascript">
<!–
function makevisible(cur,which){
if (which==0)
cur.filters.alpha.opacity=100
else
cur.filters.alpha.opacity=20
}
//–>
</SCRIPT>
2、把如下代码加入<body>区域中:
<img src="2.gif" style="filter:alpha(opacity=20)"
onMouseOver="makevisible(this,0)"
onMouseOut="makevisible(this,1)">

禁止图片下载
<A HREF="javascript:void(0)" onMouseover="alert(‘对不起,此图片不能下载!’)">
<IMG SRC="2.gif" Align="center" Border="0" width="99" height="50"></A>

页嵌页
<iframe width=291 height=247 src="main.files/news.htm" frameBorder=0></iframe>

隐藏滚动条
<body style="overflow-x:hidden;overflow-y:hidden"

CSS文字阴影(定义在<TD>中)
.abc{
FILTER: dropshadow(color=#666666, offx=1, offy=1, positive=1);"宋体"; FONT-SIZE: 9pt;COLOR: #ffffff;
}

列表/菜单
onchange="location=this.options[this.selectedIndex].value"

<iframe id="frm" src="k-xinwen.html" scrolling="no" width="314" height="179"></iframe>
<img src="xiangshang.jpg" onMouseOver="sf=setInterval(‘frm.scrollBy(0,-2)’,1)" onMouseOut="clearInterval(sf)" width="31" height="31">
<img src="xiangxia.jpg" onMouseOver="sf=setInterval(‘frm.scrollBy(0,2)’,1)" onMouseOut="clearInterval(sf)" width="31" height="31" >

reurl=server.htmlencode(request.ServerVariables("HTTP_REFERER"))

服务器上如何定义连接
MM_www_STRING ="driver={Microsoft access Driver (*.mdb)};dbq=" & server.mappath("../data/www.mdb")

链接到
response.redirect"login.asp"
location.href="xx.asp"

onClick="window.location=’login.asp’"
onClick="window.open(”)"

取得IP
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")

sql="update feedbak set hit=hit+1 where id="&request("id")
conn.execute(sql)

截取字符是否加…
function formatStr(str,len)
if(len(str)>len)
str = left(str,len) + "…"
end if
formatStr = str
end function

接收表单
If Ucase(Request.ServerVariables("REQUEST_METHOD")) = "POST" then
end if

图片宽度
<script language="javascript">
<!–
var flag=false;
function DrawImage(ckp){
var image=new Image();
image.src=ckp.src;
if(image.width>0 && image.height>0)
{flag=true;
if(image.width>120){
ckp.width=120;
}else{
ckp.width=image.width;
}
ckp.alt=image.width+"×"+image.height;
}
}
//–>
</script>
I’ll be Back 22:18:06
<img src="<%=formPath%>/<%=rs("photoname")%>" border="0" onload="javascript:DrawImage(this);">

跳转
<meta http-equiv=refresh content=’0; url=/distributor/distributor.aspx’>

溢出栏的设制
visible:超出的部分照样显示;
hidden:超出的部分隐藏;
scrool:不管有否超出,都显示滚动条;
auto:有超出时才出现滚动条;

onMouseOver:鼠标移到目标上;
onMouseUp:按下鼠标再放开左键时;
onMouseOut:鼠标移开时;
onMouseDown:按下鼠标时(不需要放开左键);
onClink:点击时;
onDblClick:双击时;
onLoad:载入网页时;
onUnload:离开页面时;
onResize:当浏览者改变浏览窗口的大小时;
onScroll:当浏览者拖动滚动条的时。

CSS样式
a:link:表示已经链接;
a:hover:表示鼠标移上链接时;
a:active:表示链接激活时;
a:visited:表示己点击过的链接。

跳出对话框链接
javascript:alert(‘lajflsjpjwg’)
后退:javascript:history.back(1)
关闭窗口:javascript:window.close();
窗口还原
function restore(){
window.moveTo(8,8);
window.resizeTo(screen.width-24,screen.availHeight-24);
}

head区是指首页HTML代码的<head>和</head>之间的内容。
必须加入的标签

1.公司版权注释
<!— The site is designed by Maketown,Inc 06/2000 —>

2.网页显示字符集
简体中文:<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
繁体中文:<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=BIG5">
英 语:<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

3.网页制作者信息
<META name="author" content="webmaster@maketown.com">

4.网站简介
<META NAME="DESCRIPTION" CONTENT="xxxxxxxxxxxxxxxxxxxxxxxxxx">

5.搜索关键字
<META NAME="keywords" CONTENT="xxxx,xxxx,xxx,xxxxx,xxxx,">

6.网页的css规范
<LINK href="style/style.css" rel="stylesheet" type="text/css">
(参见目录及命名规范)

7.网页标题
<title>xxxxxxxxxxxxxxxxxx</title>

.可以选择加入的标签

1.设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

2.禁止浏览器从本地机的缓存中调阅页面内容。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

3.用来防止别人在框架里调用你的页面。
<META HTTP-EQUIV="Window-target" CONTENT="_top">

4.自动跳转。
<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.yahoo.com">
5指时间停留5秒。

5.网页搜索机器人向导.用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。
<META NAME="robots" CONTENT="none">
CONTENT的参数有all,none,index,noindex,follow,nofollow。默认是all。

6.收藏夹图标
<link rel = "Shortcut Icon" href="favicon.ico">

所有的javascript的调用尽量采取外部调用.
<SCRIPT LANGUAGE="javascript" SRC="script/xxxxx.js"></SCRIPT>

附<body>标签:
<body>标签不属于head区,这里强调一下,为了保证浏览器的兼容性,必须设置页面背景<body bgcolor="#FFFFFF">

flash透明
在flash的源代码中加上:<param name="wmode" value="transparent">

表格透明
style="FILTER: alpha(opacity=72)"
网址前添加icon的方法
1、上http://www.favicon.com上用他的icon editor online制作一个图标。他会将做好的图标通过email即时发送给你。
2、把这个命名为favicon.ico的图标放置在index.html同一个文件夹中。就可以了。
作一个图标文件,大小为16*16像素。文件扩展名为ico,然后上传到相应目录中。在HTML源文件“<head></head>”之间添加如下代码:
<Link Rel="SHORTCUT ICON" href="http://图片的地址(注意与刚才的目录对应)">
其中的“SHORTCUT ICON”即为该图标的名称。当然如果用户使用IE5或以上版本浏览时,就更简单了,只需将图片上传到网站根目录下,自动识别
可以在收藏夹中显示出你的图标<link rel="Bookmark" href="favicon.ico">
状态栏连接说明
<A HREF="链接到某处" onmouseOver="window.status=’连接说明’;return true;" onMouseOut="window.status=’ ‘;">某某链接</a>
链接说明
<a href=“”Title=链接说明>
禁止鼠标右键
在<body>标签中加入 <body oncontextmenu="return false">
DW里输入空格
插入N个&nbsp;
水平线
<hr width="长度" size="高度" color="颜色代码" noshade> noshade为有无阴影
表单电子邮件提交
< form name="content" method="post" action="mailto:电子邮箱" >< /form>
文本域名为Subject 为邮件的标题
邮件链接定制
Mailto:地址 ? Subject=邮件的标题 &bc=抄送 &bcc=密件抄送
背景音乐
<bgsound src=地址 loop="-1">
禁止页面正文选取
<body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()">
消除ie6自动出现的图像工具栏,设置 GALLERYIMG属性为false或no .
<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="no">
防止点击空链接时,页面往往重置到页首端。代码“javascript:void(null)”代替原来的“#”标记
如何避免别人把你的网页放在框架中
<script language=“javascript”><!–if (self!=top){top.location=self.location;} –>< /script>
页面定时刷新
<meta http-equiv="Refresh" content="秒" >
页面定时转向新的地址
<meta http-equiv="refresh" content="秒;URL=url">
显示日期
<script language="javascript"><!–
today=new Date();
var week; var date;
if(today.getDay()==0) week="星期日"
if(today.getDay()==1) week="星期一"
if(today.getDay()==2) week="星期二"
if(today.getDay()==3) week="星期三"
if(today.getDay()==4) week="星期四"
if(today.getDay()==5) week="星期五"
if(today.getDay()==6) week="星期六"
date=(today.getYear())+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日"+" "
document.write("<span style=’font-size: 9pt;’>"+date+week+"</span>");
// –>
</script>
设为首页
<A href=# onclick="this.style.behavior=’url(#default#homepage)’;this.setHomePage(‘url’);">设为首页</A>
添加收藏
<A href="javascript:window.external.AddFavorite(‘url’,'title’)">收藏本站</A>
文字滚动
插入边框为0的1行1列的表格,在表格中输入文字,选中文字,
按ctrl+t输入marquee direction="up", 回车即可让文字在表格区域内向上滚动。
(right、down可用于让文字或图象向右及向下滚动,修改html原代码还可以得到需要的滚动速度。
表单验正
<SCRIPT language=javascript>
function checkform(theform){
if(theform.name.value==""){
alert("姓名不能为空!");
theform.name.focus();
return false;
}
if(theform.tel.value==""){
alert("电话不能为空!");
theform.tel.focus();
return false;
}
}
</SCRIPT>
定义鼠标
body{cursor: url(cur.ani或cur);}
以图片方式插视频
<IMG height=240 loop=infinite dynsrc=http://amedia.efu.com.cn/EFUADD0001.rmvb width=320>
层在flash上面
< param name="wmode" value="opaque" >

延迟跳转
<meta http-equiv=refresh content=’3; url=javascript:window.close();’>

导航条变色:
单元格<TR后面插入onmouseover="javascript:this.bgColor=’#57AE00′" onmouseout="javascript:this.bgColor=’#99CCFF’"

居中
<CENTER></CENTER>

空链接
javascript:;

标题表格
<fieldset>
<legend>表格的说明</legend>
</fieldset>

细线表格
style="BORDER-COLLAPSE: collapse;"

滚动条颜色代码
BODY{
SCROLLBAR-FACE-COLOR: #FFFFFF;
SCROLLBAR-HIGHLIGHT-COLOR: #FFFFFF;
SCROLLBAR-SHADOW-COLOR: #FFFFFF;
SCROLLBAR-3DLIGHT-COLOR: #FFCBC8;
SCROLLBAR-ARROW-COLOR: #FFFFFF;
SCROLLBAR-TRACK-COLOR: #FFFFFF;
SCROLLBAR-DARKSHADOW-COLOR: #FFCBC8;
SCROLLBAR-BASE-COLOR: #FFFFFF
}

连续的英文或者一堆感叹号!!!不会自动换行的问题
只要在CSS中定义了如下句子,可保网页不会再被撑开了

table{table-layout: fixed;}
td{word-break: break-all; word-wrap:break-word;}

注释一下:

1.第一条table{table-layout: fixed;},此样式可以让表格中有!!!(感叹号)之类的字符时自动换行。

2.td{word-break: break-all},一般用这句这OK了,但在有些特殊情况下还是会撑开,因此需要再加上后面一句{word-wrap:break-word;}就可以解决。此样式可以让表格中的一些连续的英文单词自动换行。

1、控制横向和纵向滚动条的显隐?
<body style="overflow-y:hidden"> 去掉x轴
<body style="overflow-x:hidden"> 去掉y轴
<body scroll="no">不显
2、表格变色
<TD onmouseover="this.style.backgroundColor=’#FFFFFF’"
onmouseout="this.style.backgroundColor=”"
style="CURSOR: hand">
3、 禁止复制,鼠标拖动选取
<body ondragstart=window.event.returnValue=false oncontextmenu=window.event.returnValue=false onselectstart=event.returnValue=false>
4、 普通iframe页面
<iframe name="name" src="main.htm" width="450" height="287" scrolling="Auto" frameborder="0"></iframe>
5、iframe自适应高度
<iframe name="pindex" src="index.asp" frameborder=false scrolling="auto" width="100%" height="100%" frameborder=no onload="document.all['pindex'].style.height=pindex.document.body.scrollHeight" ></iframe>
6、IE地址栏前换成自己的图标&可以在收藏夹中显示出你的图标
<link rel="Shortcut Icon" href="favicon.ico">
<link rel="Bookmark" href="favicon.ico">
7、字号缩放
越来越多的人长时间的泡网,眼镜的普及率也越来越高,让文字大点,让更多的用户看的更清楚。
<script type="text/javascript">
function doZoom(size)
{document.getElementById(‘zoom’).style.fontSize=size+’px’;}
</script>
<span id="zoom">需要指定大小的文字</span>
<a href="javascript:doZoom(16)">大</a> <a href="javascript:doZoom(14)">中</a> <a href="javascript:doZoom(12)">小</a>
8、select挡住div的解决方法
在div里加入下面的代码,根据需要调整就可以了。
<iframe src="javascript:false" scrolling="no" frameborder="0" style="z-index:-1;position:absolute; top:5px; left:2px;width:168;height:100px;">
</iframe>
9、iframe(嵌入式帧)自适应高度
填写的嵌入地址一定要和本页面在同一个站点上,否则会提示“拒绝访问!”。对跨域引用有权限问题,请查阅其他资料。
<iframe name="guestbook" src="gbook/index.asp" scrolling=no width="100%" height="100%" frameborder=no onload="document.all['guestbook'].style.height=guestbook.document.body.scrollHeight"></iframe>
10、 跳转菜单新窗口
<select name="select" onchange="window.open(this.options[this.selectedIndex].value)">
<option value="http://www.microsoft.com/ie"> Internet Explorer</option>
<option value="http://www.microsoft.com"> Microsoft Home</option>
<option value="http://msdn.microsoft.com"> Developer Network</option>
</select>
11、flash透明选项
<param name="wmode" value="transparent">
12、添加到收藏夹和设为首页
<a href=# onclick="this.style.behavior=’url(#default#homepage)’; this.setHomePage(‘http://www.makewing.com/lanren/’);">设为首页</a>

<a href="javascript:window.external.AddFavorite(‘http://www.makewing.com/lanren/’,'懒人图库’)">收藏本站</a>
13、记录并显示网页的最后修改时间
<script language=JavaScript>
document.write("最后更新时间: " + document.lastModified + "")
</script>
14、节日倒计时
<Script Language="JavaScript">
var timedate= new Date("October 1,2002");
var times= "国庆节";
var now = new Date();
var date = timedate.getTime() – now.getTime();
var time = Math.floor(date / (1000 * 60 * 60 * 24));
if (time >= 0)
document.write( "现在离"+times+"还有: "+time +"天")
</Script>
15、加在HEAD里
禁止缓存
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
16、 让IFRAME框架内的文档的背景透明
<iframe src="about:<body style=’background:transparent’>" allowtransparency></iframe>
17、打开窗口即最大化
<script language="JavaScript">
<!– Begin
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
// End –>
</script>
18、加入背景音乐
<bgsound src="mid/windblue[1].mid" loop="-1"> 只适用于IE
<embed src="music.mid" autostart="true" loop="true" hidden="true"> 对Netscape ,IE 都适用
19、 滚动
<marquee direction=up height=146 onmouseout=start() onmouseover=stop() scrollAmount=2>滚动信息
</marquee>
20、防止点击空链接时,页面往往重置到页首端代码“javascript:void(null)”代替原来的“#”标记
21、文字或图片弹出指定大小的窗口
在body中加入
<script language="JavaScript" type="text/JavaScript">
function MM_openBrWindow(theURL,winName,features) {window.open(theURL,winName,features);}
</script>
弹出代码
<a href="#" target="_self" onClick="MM_openBrWindow(‘windows01.htm’,”,’width=550,height=380′)" width="550" height="380" border="0">图片或文字</a>
22、 flash按钮加链接
on (press) {
getURL("http://www.makewing.com","_blank");
}
23、跳转页面代码
<meta http-equiv="refresh" content="5;url=http://www.makewing.com">
24、细线分隔线
<hr noshade size=0 color=#C0C0C0>
25、网页中的自动换行
<td style="word-break:break-all">就搞定了。
完整的是
style="table-layout: fixed;WORD-BREAK: break-all; WORD-WRAP: break-word"
26、消除ie6自动出现的图像工具栏,设置 GALLERYIMG属性为false或no .
<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="no">
27、禁止页面正文内容被选取
<body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return
false"onmouseup="document.selection.empty()">
28、不能点右键,不用CTRL+A,不能复制作!
<body oncontextmenu="window.event.returnValue=false"
onkeypress="window.event.returnValue=false"
onkeydown="window.event.returnValue=false"
onkeyup="window.event.returnValue=false"
ondragstart="window.event.returnValue=false"
onselectstart="event.returnValue=false">
</body>
29、IE浏览器支持一个 Body 属性 bgproperties,它可以让背景不滚动:
<Body Background="图片文件" bgproperties="fixed">
30、随机变换背景图象(一个可以刷新心情的特效)
<Script Language="JavaScript">
image = new Array(4); //定义image为图片数量的数组
image [0] = ‘tu0.gif’ //背景图象的路径
image [1] = ‘tu1.gif’
image [2] = ‘tu2.gif’
image [3] = ‘tu3.gif’
image [4] = ‘tu4.gif’
number = Math.floor(Math.random() * image.length);
document.write("<BODY BACKGROUND="+image[number]+">");
</Script>
31、flash载入影片
on (release)
{
loadMovie("1-01.swf", "_root.loaderclip");
}
32、图片表单按钮
<form id="form1" name="form1" method="post" action="">
<img src="login.gif" width="62" height="22" onclick="document.form1.submit()" />
</form>
33、左右阴影背景的CSS定义方法
body {
text-align:center;
background-repeat: repeat-y;
background-position: center;
background-image: url(../images/bg.jpg);
}
34、划过链接 手型鼠标
style="cursor:hand"
35、如何关闭层
<div id="Layer1"></div>
<a href="#" onClick="Layer1.style.display=’none’">关闭层</a>
36、关闭窗口的脚本
<a href=javascript:close()>[关闭窗口]</a>
37、如果文字过长,则将过长的部分变成省略号显示
<DIV STYLE="width: 120px; height: 50px; border: 1px solid blue;overflow: hidden; text-overflow:ellipsis">
<NOBR>就是比如有一行文字,很长,表格内一行显示不下.</NOBR>
</DIV>
38、进入主页后自动最大化
<script>
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
</script>
39、凹陷文字
<div style="width:300px;padding:20px;overflow:hidden;word-wrap:break-word;word-break:break:all; font-size:12px; line-height:18px; background-color:#eeeeee;">
<font disabled>
怎么样,我凹下去了吧?<br>
你不想试试吗?<br>
<a href="http://www.lenvo.cn/">www.lenvo.cn</a></font>
</div>
40、运行代码框
<script>
function Preview()
{var TestWin=open(”);
TestWin.document.write(code.value);}
</script>
<textarea id=code cols=60 rows=15></textarea>
<br>
<button onclick=Preview() >运行</button>
41、给表格做链接
<table width="100%" onclick="window.open(‘http://www.makewing.com/’, ‘_blank’)" style="CURSOR:hand">
<tr>
<td height="100" bgcolor="f4f4f4">&nbsp;</td>
</tr>
</table>
42、让弹出窗口总是在最上面
<body onblur="this.focus();">
43、CSS文字阴影
.shadowfont{FILTER: dropshadow(color=#666666, offx=1, offy=1, positive=1);"宋体"; FONT-SIZE: 9pt;COLOR: #ffffff;}
44、后退&关闭窗口
后退:javascript:history.back(1)
关闭:javascript:window.close();
45、表格透明
style="FILTER: alpha(opacity=72)"
46、如何避免别人把你的网页放在框架中
<script language=“javascript”><!–if (self!=top){top.location=self.location;} –>< /script>
47、Alt和Title的区别
alt 用来给图片来提示的。Title用来给链接文字或普通文字提示的。

<a href="#" Title="给链接文字提示">文字</a>
<p Title="给链接文字提示">文字</p>

<img src="图片链接" alt="给图片提示">
48、所有的javascript的调用尽量采取外部调用
<SCRIPT LANGUAGE="javascript" SRC="js/xxxxx.js"></SCRIPT>
49、链接到
response.redirect"login.asp"
location.href="xx.asp"

onClick="window.location=’login.asp’"
onClick="window.open(”)"
50、基本链接样式
a:link 表示链接的样式
a:active 表示当前活动连接的样式
a:hover 表示鼠标划过时的样式
a:visited 表示已经访问过的连接的样式
"link-visited-hover-active" 简记为 "lvha" 即 "love"+"hate"
51、在同一页面设置不同文字链接效果的样式
<style type="text/css">
.green {COLOR: #309633}
.green A:link {COLOR: #309633; TEXT-DECORATION: none}
.green A:visited {COLOR: #309633; TEXT-DECORATION: none}
.green A:hover {COLOR: #309633; TEXT-DECORATION: underline}
.green A:active {COLOR: #309633; TEXT-DECORATION: none}
</style>
<a href="#" class="green">文字</a>

Tags: 代码 html

Body 卷标与属性  
<BODY>...</BODY> 网页中将会显示在浏览器画面上的内容都包含在这组卷标里面
<BODY bgcolor="color"> 以十六进制码设定网页背景色
<BODY background="filename.xxx"> 以图片作为页面的背景(也就是桌布)
<BODY text="color"> 以十六进制码设定页面文字颜色
<BODY link="color"> 以十六进制码设定尚未点选过的超链接文字颜色
<BODY alink="color"> 以十六进制码设定作用中(鼠标左键按下)的超链接文字颜色
<BODY vlink="color"> 以十六进制码设定曾经点选过的超链接文字颜色
   
字形卷标与属性  
<FONT>...</FONT> 设定被包含在此卷标内文字的各种属性
<FONT size="value">...</FONT> 设定文字的尺寸,从 1 到 7,1 代表最小,7 代表最大文字尺寸
<FONT face="name">...</FONT> 设定文字所使用的字型
<FONT color="color">...</FONT> 以十六进制码设定文字的颜色
   
图形卷标与属性  
<IMG> 在卷标所在的位置插入一张图片
<IMG src="url" alt="text"> 插入一张图片,并且为图片加上说明文字
<IMG src="url" alt="text" align="direction"> 将图片靠左,靠右对齐(文绕图效果),或者将旁边的文字对齐图片的底端,中央或顶端
<IMG src="url" alt="text" border="number"> 设定图片的边框尺寸(设定成 0 代表没有边框)
<IMG src="url" alt="text" height="pixels"> 设定图片的高度
<IMG src="url" alt="text" width="pixels"> 设定图片的宽度
<IMG src="url" alt="text" hspace="pixels"> 设定图片左右两边的留白宽度
<IMG src="url" alt="text" vspace="pixels"> 设定图片上下两边的留白高度
<IMG src="url" alt="text" usemap="map-name"> 将图片设定成为(浏览器端)影像地图(需要搭配另一组<MAP>...</MAP>卷标才可正常作用)
超链接卷标与属性  
<A>...</A> 设定超链接的来源与连往的目的地
<A HREF="url">...</A> 产生一个超链接,指向 url 所代表的页面
<A HREF="#NAME">...</A> 连向目前同一页面中的某个特定目标位置
<A HREF="URL#NAME">...</A> 连向其它网站某个页面中的特定目标位置
<A NAME="NAME">...</A> 在某个页面中设定目标位置(又称为锚点 anchor)
<A HREF="mailto:email">...</A> 建立一个电子邮件信箱连结
   
选用属性:  
<A HREF="?" target="?">...</A> 指定被连结的页面要显示在那个窗口
<A HREF="?" rel="?">...</A> 设定目标页面和目前页面本身之间的关系
<A HREF="?" rev="?">...</A> 设定目标页面和目前页面本身之间的反向关系
   
表格卷标与属性  
<TABLE>...</TABLE> 产生一个表格
<TABLE border="pixels"> 设定表格格子的框线宽度
<TABLE cellspacing="pixels"> 设定格子与格子之间的间隔距离
<TABLE cellpadding="pixels"> 设定格子的内留白(格子框线与内容之间的空白)宽度
<TABLE height="pixels" or "%"> 设定表格的高度
<TABLE width="pixels" or "%"> 设定表格的宽度
<TD>...</TD> 定义一个格子(用来放置表格资料)
<TD colspan="columns"> 设定一个格子横跨的栏的数目
<TD rowspan="rows"> 设定一个格子纵跨的列的数目
<TD nowrap> 不让格子内的文字自动断行
<TH>...</TH> 定义表格内容标题,里面的文字会以粗体字,置中呈现
<TR>...</TR> 定义表格中的一个列
<TR align="?"> or <TD align="?"> 设定表格列或某个格子的内容对齐方式(靠左,靠右或者置中对齐)
<TR valign="?"> or <TD valign="?"> 设定表格列或者某个格子内容的垂直对齐方式(靠上,置中或者靠底端对齐)

分割窗口卷标与属性

<FRAMESET>...</FRAMESET>

在主浏览器窗口中定义分割窗口的切割方式

<FRAMESET rows="value,value">

在一组分割窗口里面定义出一个列

<FRAMESET cols="value,value">

在一组分割窗口里面定义出一个栏

<NOFRAMES>...</NOFRAMES>

针对不支持分割窗口的浏览器显示选用性的内容

<FRAME src="?">

设定某个分割窗口要显示的页面 url

<FRAME name="name">

为某个分割窗口命名,以便设定超链接的目的地

<FRAME marginwidth="#">

设定某个分割窗口的内容左右两边留白宽度

<FRAME marginheight="#">

设定某个分割窗口的内容上下两边留白高度

<FRAME scrolling="value">

设定某个窗口是否出现滚动条

<FRAME noresize>

不让使用者改变某个分割窗口的尺寸大小

 

窗体字段卷标与属性

<FORM>...</FORM>

产生一个窗体,用来放置各种字段

<FORM action="url">

指定要用来处理窗体内容的程序的位置与文件名

<FORM method="get|post">

指定浏览器传送资料给后端程序的方式

<FORM accept="media type">

指定处理窗体资料的服务器所支持的 MIME 类型

<FORM accept-charset="text">

指定处理窗体资料的服务器所支持的字集

<FORM enctype="media type">

指定窗体资料的格式

<OPTION>

定义下拉选单中的一个选项

<SELECT name="NAME">...</SELECT>

产生一个下拉选单

<INPUT type="checkbox">

产生一个复选框(复选)

<INPUT type="hidden">

建立一个隐藏字段(该字段不会显示在浏览器画面上)

<INPUT type="image">

建立一个用来代替提交按钮的图片(与提交按钮一样按下后会把窗体资料传送给指定的程序)

<INPUT type="password">

产生一个单行的密码输入字段(输入的内容会以 * 号显示在画面上,避免他人窥见)

<INPUT type="radio">

产生一个收音机按钮(单选)

<INPUT type="text">

产生一个单行的文字输入字段

<INPUT type="submit">

产生一个窗体资料提交按钮,按下后会把窗体资料传送给指定的程序

<INPUT type="reset">

产生一个用来恢复窗体内容的清除按钮,按下以后窗体内容会恢复成原本的默认值

2009年12月27日
本文按照如下的顺序进行:
l 领导团队
l 建立项目权威
l 领导团队的技巧
l 团队会议
l 维护团队领导地位
l 为项目工作
l 激励团队
技术项目的成功依赖的是其团队成员的共同努力,团队为项目目标共同工作,从而取得了成就。IT项目通常需要多方面的技巧和才能。作为项目经理,必须领导和鼓励团队一起为共同的项目目标工作。作为团队成员,必须学会互相依赖和信靠。团队的每一个成员都将需要项目经理的帮助来完成他们的任务,挑战他们的能力,并为他们的成长与成功提供机会。一个人的力量是微薄的,团队的力量是强大的,团队中每个人的个人技能的汇聚将是一股很强大的力量。
1. 领导团队:项目经理需要鼓励团队一起为共同的目标工作,项目经理的表现就必须像一个领导者。何谓一个领导者?如果仅仅是下达一些逻辑混乱的指令,并通过政治强迫员工执行的领导者,那就比较愚蠢。领导者应该具备的特征是:一种激励人们努力追求、进取的能力。那么项目经理必须建立一种与你的团队成员交流的方法,激励他们为项目的最终目标共同工作。
言传身教是最直接,最容易的方法,使其他人对你的项目产生热情首先自己要对项目有热情。这种热情以及与热诚都是可以传染的。作为项目经理,不仅要注意项目的成功,也要注意到项目团队中每一个人的成功,要花时间去熟悉团队成员,了解他们的热情,努力寻找一种与他们一起工作的方法,而不是颐指气使,或者高高在上。
2. 建立对项目的权威:任何项目,无论大小,项目经理必须建立对项目的权威。对项目的权威与对团队成员的权威不同,对项目的权威则决定了项目经理对项目成败要负责,必须负责为了完成项目而实施的所有活动。即保证项目成功的责任必须与创造可交付成功的活动具有同等级别的权威。
权威与责任是紧密联系在一起的。项目经理的事业,晋升的机会以及声誉都依赖于其团队完成项目,创造可交付成功的能力。如果项目经理没有对团队成员分配任务的权力,那么他就不能完成项目的目标,项目经理的权威与项目团队对其的尊重是相符合的。
任何事物都具有矛盾的对立面,项目经理具有相应的权利和权威,作为项目团队的成员,对于项目中需要完成的工作也有一定的责任,而且他们也有与项目相关的风险,例如,团队成员会认识到为一个成功项目工作会为个人带来利益,从而献身于它。一个成功的项目团队成员与项目经理之间的利益关系是共生的。团队成员必须认同你是项目的领导者,他们会支持你的决策,你对资源的管理以及你对可以交付成功的领导权,项目经理,尽管不是团队成员个人的管理者,也应当对项目团队表现出一定程度的自信与权威,以赢得他们的尊重以及为项目工作的渴望。许多IT项目经理都来自于IT项目背景,他们需要具备一些品质:
组织能力:作为项目经理,领导一个团队需要一定得组织能力。
对团队成功的热情:如果项目经理不关心团队的成功,团队就如同失去了父母的孩子。
对项目成功的热情:如果领导者对成功没有热情,那么团队的队员也会失去热情。
与他人一同工作的能力:项目经理需要和团队一同工作,以解决遇到的困难。
善于倾听的技巧:当团队内部出现矛盾或者不满时,项目经理可能就是一个出气筒。
有分寸讲文明的能力:项目经理需要为团队成员做一个榜样。
专业行为的能力:项目经理需要表现出再项目管理中的专业性。
对质量的承诺:项目经理需要向项目发起人和团队做出承诺。
为了完成项目的奉献精神:这种精神会传染,如果整个团队传染了这种精神,则整个团队的战斗力将是不可估量的。
3. 领导团队的技巧:作为项目经理,需要领导一个团队,没有神奇的公式可以套用。领导的能力是一种独特的品质,有些人天生就有,有些人需要靠后来的学习,你能用来领导团队的最好的方法就是赶上你所敬仰的领导者,通过模仿成功者的行为,你也会取得成功。在许多方面的领导能力将会来自于经验与成熟,然而有些成功项目管理的程序与规程你必须了解。
a) 做决策。如果你是一个新的项目经理,你可能害怕做决策,这有可能会得罪团队成员,或者犯错误,有的时候你可能做出不受团队欢迎的决策。但是你必须要做,你所作出的决策必须是为了完成项目的要求,符合项目预算,并且在项目期限内完成。当然,有些决策不必由你一个人完全做出,项目团队可以做出许多决策。充分发动团队成员的积极性,是做出决策的最好方法。项目经理通过决策来领导团队,并利用其才能,经验以及每个成员的教育来达到效果。为了促进讨论,项目经理可能使用3中类型的决策过程模型来解决问题。
i. 指示型:比较强势的做法,项目经理做出的决策不需要团队成员的建议,项目经理也许知道实现的技术,但也许没有资格做出整个决策,指示型决策在某些时候是可以接受的,需要的,但它将项目经理与项目团队隔离开了,这是比较危险的。
ii. 参与型:参与型决策是你的目标,在这个模型中,所有的团队成员都参与到讨论与决策的进程之中,这种方法主要适用于大的方面的决策,通过意见折中,经验以及自由讨论,项目团队和项目经理会迸发出惊人的能量,热情以及强烈的合作愿望。最终达到最佳决策方案。
iii. 协商型:这种方法结合了前面两种决策过程的优点。项目团队与项目经理开会,一起提出其中可能的解决方案,然后由项目经理对方案进行评估,并基于他认为最好的项目方案做出决策,再处理工期紧,预算少,技术复杂的项目时,这种方法最理想。有许多的因素可能导致项目的推迟,这个时候项目经理需要担负起更多的责任来保护项目。

 

a) 与团队成员一起工作,在完成解决方案的过程中,有些团队成员与你的意见不一致,意见不合是好事,也是应该鼓励的,因为这表示团队成员再思考并寻求项目的最佳解决方案,但是在有的时候,团队成员之间会因为各自不同的意见发生冲突,这些内部的冲突会形成小团队,出现不合作的现象,最终会影响项目的成功。作为项目经理,必须学会处理在团队中老练的处理问题,使得项目最终完成,再项目团队中,可能会遇到四种类型的团队成员。
i. 逃避者:这些团队成员不喜欢面对任何的冲突,他们表面上只会点头,微笑,而在内心中存在抗议,他们一般属于公司的新人,害羞的或者受坦率队员的胁迫(包括项目经理),当使用参与型方式进行决策时,需要每个人的意见,包括这些人,你很快会了解团队中谁是这种人,他们永远不会或者很少发表不同的意见或者反对任何人的意见。再团队会议中要争取这些人的意见,可以参考以下的意见:
a) 每个队员就主题发表意见,并将意见写在黑板上
b) 如果可能,让团队成员思考问题,并把他们的想法Email给你
c) 征求建议时,首先要对这些逃避的团队成员直接点名。
ii. 好斗者 这些团队成员热爱争论,他们的意见通常和大众的想法相反,他们的意见是冲动的,他们显得比团队中的其他人聪明至少他们这么认为。这些人也许非常聪明,在技术上收到过良好的教育,但是他们常常根据自己的习惯行动,而不是帮助团队取得最好的解决方案,如果有这种人,试图使用以下的方法应付他们:
1. 再其他队员提出意见之前,让他们先提出意见,这样就可以避免争论
2. 让他们用清晰,准确的论证解释他们的观点。
3. 如果需要,在征求解决方案时,私下与他们对话,寻求合作。
iii. 思想者:这些是团队成员的智者,他们听取别人的意见,然后基于讨论的结果得出自己的意见,这些人在项目团队中是优秀的,尽管他们的意见来自于他人,如果你认为他们应当尽早加入到整个团队中,试着和这些思想者一起参与讨论。
iv. 理想主义者,这些队员,他们的意图是好的,也许将项目看的过于简单,直接就能顺利完成,他们也许忽略了,他们根本就没有再寻求正确的结论,理想主义者通常是在技术上受到过很好的培训,但是实现过程的实践经验不足。这些团队成员通常善于学习,热心于提供项目解决方案。
作为项目经理,对项目团队成员要有耐心,了解他们的个性,知道他们的动机是什么,应该花时间和团队成员在一起,与他们建立一个好的关系,要起到一个模范带头的作用,如果你与他们在一起只是谈论项目,给他们分配任务,评审他们的工作进展,那么不会提高你们团队的绩效。

2006年06月29日

1.首先你要確定java這個類的機制,主要是按照我們的常理對其進行擴展,先新建一個這樣的對象,然後新建一張工作表,定義好它的第一張sheet,
<!—新建工作表—>
<cfset wb = createObject("java","org.apache.poi.hssf.usermodel.HSSFWorkbook").init()/>
<cfset newSheet = wb.createSheet()/>
<cfset wb.setsheetname(0,"#SheetName#",wb.encoding_utf_16)>
//encoding_UTF_16是對我們簡體中文的編碼,原先都用encoding_UTF_8,但顯示不了,後來查到才知道的

2.接下來就是對表格style的設計了,這個是整個代碼中佔最多空間的,我一般都是把它寫成一個文件來cfinclude的,對簡單的表格,也許就不需要了。
<cfset style = wb.createCellStyle()/>
<cfset font = wb.createFont()/> //新建字體樣式
<cfset font.setFontHeightInPoints(10)/> //新建字體大小
<cfset style.setFont(font)/>  //字體style
<cfset style.setalignment(style.ALIGN_CENTER)>  //水平方向的對齊
<cfset style1.setVerticalAlignment(style1.VERTICAL_CENTER)> //垂直方向的對齊
//下面是對邊框粗細的定義,這個是要對其上、下、左、右的定義的
<cfset style.setBorderBottom(style.BORDER_THIN)/>
<cfset style.setBorderLeft(style.BORDER_THIN)/>
<cfset style.setBorderRight(style.BORDER_THIN)/>
<cfset style.setBorderTop(style.BORDER_THIN)/>
//下面一樣的哦,就是對邊框的顔色
<cfset style.setBottomBorderColor(000000)>
<cfset style.setleftBorderColor(000000)>
<cfset style.setrightBorderColor(000000)>
<cfset style.settopBorderColor(000000)>
//還有很多的style設置,對於你們可以查詢相關的網站來尋找,也可以用cfdump來查詢

3.對整體表格設置樣式
<cfloop index="i" from="#firstrow#" to="#lastrow#">
    <cfset row= newSheet.createRow(javacast("int",i))/>
    <cfloop index="j" from="firstcell" to="lastcell">
  <cfset cell= row.createCell(javacast("int",j))/>
  <cfset cell.setcellstyle(style)>
    </cfloop>
</cfloop>
//如果需要設置多種樣式,就要在前面定義好,在這調用哦!

4.到了正文部分了,其實如果你對poi熟悉的話,這個是件很容易的事,
先定義了行->再定義列->定義編碼->賦值

<cfset row= newSheet.createRow(0)/>
<cfset cell=row.createCell(0)/>
<cfset cell.setCellStyle(style)/>
<cfset cell.setencoding(cell.encoding_UTF_16)>
<cfset cell.setCellValue(javacast("string",cellvalue))/>
//下面的兩句話是進行合併單元格的設置,定義起始標記到最好一格的標記就可以了,
//需要注意的是excel的下標是從0開始的哦,如果是比較規則的表格就可以用循環跑,
如果是資料庫的數據的,可以把記錄集取出存入list或array,用循環跑。
<cfset region = createObject("java","org.apache.poi.hssf.util.Region").init(0,0,0,15)/>
<cfset newsheet.addMergedRegion(region)/>

5.最好到了結束的部分,需要對它生成文件

<cfset fileOut = 
createObject("java","java.io.FileOutputStream").init("你需要存入的文件路徑和名稱")/>
<cfset wb.write(fileOut)/>
<cfset  fileOut.close()/>
這個就是大體上生成excel文件的過程,其實這裡面不全面,很多poi的方法沒有辦法一一列出,
需要注意的是,賦值的時候一般會遇到格式轉換的問題,所以需要用到javacast()函數,
一般常用的類型為string,int,float三种,還有就是多用cfdump標簽,
一般遇到createSheet (returns org.apache.poi.hssf.usermodel.HSSFSheet)這樣的表示還有子方法繼承下去,
getNameName (returns java.lang.String)這樣的表述成輸出值,
setSheetOrder (returns void)這樣的就是可以對該方法調用,

2006年06月26日

SOA 是一个 IT 战略,它将企业应用中的分散的功能组织成可以共享的基于标准的服务,这些服务能够迅速地被组合和重用,以满足业务的需求。

围绕服务而不是应用来组织企业IT , SOA 提供了如下关键的好处:

提高业务和 IT 的生产效率、敏捷性和速度
使 IT 更快地交付服务,更紧密地与业务联系
使业务更快地做出反应,提供最优化的用户体验
隐藏了 IT 环境的内在的技术复杂性
这使得新的和改进的业务服务能更快地被开发,更可靠地被交付。

应对今天的业务挑战

     您的业务步伐比以往迈得更快了。随着客户、合作伙伴和员工期望更高质量的服务 –24×7 的服务 — 今天的企业系统已经很难跟上时代的步伐。

   首当其冲的是 IT 职员,分派给他们的任务有:

     提高运营效率: 使现有投资赢得更高生产力,同时,这也意味着需要改善业务的管理方式、实施全面的业务流程。尤其是保持和拓展新的战略开发成果,这其中包括压缩预算和开支、降低进行中的维护成本,以及在实际业务的每一领域中做到 “ 事半功倍 ” 。

     改善客户响应: 需要更快地响应支持业务的投资者,不管他们是来自企业内部的还是外部的客户,他们对 IT 系统都是有或多或少的信息需求的,这其中包括收集和使用贯穿整个业务流程的信息,而无论信息位于何处,都要做到使得信息能够被那些需要的人员便利的获得。

     提高业务灵活性: 需要快速地适应业务,包括内部和外部的联系点,因为业务会不断发生变化,应当做到避免由于业务需求变化而不得不新开发新的应用程序和较大改变原有的基础结构。

     手头压着这么多重要任务, IT 人士如何满足那些日益增长的需求以便快速实现 IT 价值呢?答案是开发和部署面向服务的架构( SOA )。 SOA 方法能够更好地让 IT 与业务目标看齐,使得 IT 组织可以高效复用资产、为企业更快地创造价值,进而更轻松地应对不断变化的业务需求。

为什么采用 SOA ?

    面向服务架构( SOA )是让 IT 更加关注于业务流程而非底层 IT 基础结构,从而获得竞争优势的更高级别的应用程序开发架构。

     SOA 对需要使用信息技术解决关键业务问题的企业(包括希望减少冗余架构、创建跨客户和员工系统的公共业务接口的企业;需要基于角色和工作流对用户提供个性化信息的业务的企业;希望通过 Internet 实现跨区销售、升级销售和经由移动设备的访问来提升客户服务的组织)很有价值。

   采用服务驱动型方法的企业体验着以下业务和 IT 好处:

面向服务架构的业务好处

效率: 将业务流程从 " 烟囱 " 状的、重复的流程向维护成本较低的高度利用、共享服务应用转变。
响应: 迅速适应和传送关键业务服务来满足市场需求,为客户、雇员和合作伙伴更高水准的服务。
适应性: 更高效地转入转出让整个业务变得复杂性和难度更小,达到节约时间和资金的目的。
面向服务架构的 IT 好处

复杂性降低: 基于标准的兼容性,与点到点的集成相比降低了复杂性。
重用增加: 通过重用以前开发和部署的共享服务,实现了更有效的应用程序 / 项目开发和交付。
遗留集成: 用作可重用服务的遗留应用程序降低了维护和集成的成本。
如今的服务驱动型企业都在体验着开发的高效率,服务的高可靠性和服务的高质量,以最大限度获得业务机会所带来的这些好处。

SOA 企业考虑事项

     服务驱动型企业在对客户、合作伙伴和雇员的高效化服务方面得到了优化 — 并加速了业务服务响应时间。然而,成为服务驱动型企业,需要的不仅仅是产品的部署。对实现服务驱动型架构感兴趣的企业将希望能与一个有经验的 SOA 提供商合作,它提供的服务可以保护企业在业务和 IT 方面的投入,他们考虑到了以下几个方面:

 

     业务战略: 组织需要明确驱动关键业务流程的业务战略,它将用于成形 SOA 的框架。一旦识别出业务问题,就可以用一种一致的、可复用的方法对其进行定义,并实现解决方案。在这个关键的基础阶段,业务通常需要与一个拥有开发 SOA 业务战略经验、并能共享横向和纵向市场最佳实践的提供商进行合作。
体系结构: 为了解决方案快速和动态的交付,企业必须开发一种允许装配组件和服务的体系结构框架。通过与有经验的 SOA 提供商合作,企业可以获得相应的参考案例,以快速搭建一个关注复用、避免 " 烟囱 " ( stovepipe )式应用程序和 IT 资源 " 孤岛 " 的体系结构。此外,有经验的 SOA 提供商还可以帮助企业对项目的易管理性进行设计。

     构建模块: 不管是对体系结构还是对编程模型来说, SOA 都是是思考构建软件模型的一种优秀方式。与 SOA 提供商进行合作能让组织能够识别可在 SOA 实现中使用或重用的构建模块代码、服务、应用程序和组件。与有经验的 SOA 提供商进行合作还有一个好处,企业可以获得对构造组件、企业域( domains )、服务和规范数据模型的参考经验。

     项目和应用程序: SOA 创造了一种在更强大、更灵活的编程模式中搭建应用程序的新方法。与 SOA 提供商合作的企业可以更好地识别将被合并到 SOA 结构体系中的现存的和正在使用的应用程序。有经验的 SOA 提供商还将引导项目基础架构的搭建,并对正在进行中的项目提供有效的管理。
成本和收益: 在一个 SOA 项目中,开发和维护成本将大大削减,。有经验的 SOA 提供商可以帮助企业构造 SOA 基金模式,并构建 " 行动案例 " ,包括评估基础构造成本和效益、实现项目的最佳投资回报( ROI )以及开发商务案例。

     组织和统辖: 组织需要为新的面向服务的 IT 组织识别角色和职责,并优化经验集便于以后使用。有经验的 SOA 提供商可以帮助企业实现这些目标,同时组织一个有效的设计 " 复用工厂 " ( Reuse Factory ),帮助定义统辖模式,并最终保证客户满意。

一个控制 Word 插入表格的代码:

procedure TForm1.MakeWordFile(const UserID : string);
var
  Bookmark: TBookmark;
  RangeW: Word97.Range;
  v1: Variant;
  ov1: OleVariant;
  Row1: Word97.Row;
  sQANDD : string;//问题与难点
  sMemo : string;//备注
  sSender:string;//提交人
  sPOSTDATE :string;//提交日期
  fName : OleVariant;
  sUserName : string;//
  sfName : string;
  i , j  : integer;

begin
  // insert title
  WordDocument1.Range.Text := ‘文档标题’;
  //格式必须在最后设置
  WordDocument1.PageSetup.Orientation := wdOrientLandscape;//横向
  WordDocument1.Range.Font.Size := 14;
  WordDocument1.Range.Font.Bold := 0;

  WordDocument1.Tables.Add (WordDocument1.Words.Last,Table1.RecordCount+1,5,EmptyParam,EmptyParam);
  WordDocument1.Tables.Item(1).Cell(1,1).Range.Text := ‘格1′;
  WordDocument1.Tables.Item(1).Cell(1,2).Range.Text := ‘格2′;
  WordDocument1.Tables.Item(1).Cell(1,3).Range.Text := ‘格3′;
  WordDocument1.Tables.Item(1).Cell(1,4).Range.Text := ‘格4′;
  WordDocument1.Paragraphs.Last.Range.Text := ‘ ‘;//必须填这句,否则两个表格就粘合在一起了
  WordDocument1.Tables.Item(1).Cell(1,5).Range.Text := ‘格5′;
  Table1.First;
  for i := 1 to Table1.RecordCount  do
  begin
    WordDocument1.Tables.Item(1).Cell(1+i,1).Range.Text := Table1.FieldByName(‘ITEM’).AsString;
    WordDocument1.Tables.Item(1).Cell(1+i,2).Range.Text := Table1.FieldByName(‘Description’).AsString;
    WordDocument1.Tables.Item(1).Cell(1+i,3).Range.Text := Table1.FieldByName(‘Result’).AsString;
    WordDocument1.Tables.Item(1).Cell(1+i,4).Range.Text := Table1.FieldByName(‘MEASURE’).AsString;
    WordDocument1.Tables.Item(1).Cell(1+i,5).Range.Text := Table1.FieldByName(‘POSTDATE’).AsString;
    Table1.Next;
  end;

  WordDocument1.Tables.Add(WordDocument1.Words.Last,Table2.RecordCount +1,2,EmptyParam,EmptyParam);
  WordDocument1.Tables.Item(2).Cell(1,1).Range.Text := ‘其它’;
  WordDocument1.Tables.Item(2).Cell(1,2).Range.Text := ‘备注’;

  Table2.First;
  for i := 1 to Table2.RecordCount  do
  begin
    WordDocument1.Tables.Item(2).Cell(1+i,1).Range.Text := Table2.FieldByName (‘QANDD’).AsString;
    WordDocument1.Tables.Item(2).Cell(1+i,2).Range.Text := Table2.FieldByName (‘MEMO’).AsString;
    Table2.Next;
  end;
  //***********************设置标题文字格式*********************************
  WordDocument1.Paragraphs.Item(1).Range.Select;
  WordDocument1.Paragraphs.Item(1).Range.Font.Size := 30;
  WordDocument1.Application.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
  //****************************保存文件****************************************
  sUserName := lstUser.Items[lstUser.ItemIndex];
  ZipStr(sUserName, #10);
  sfName := Trim(edFileDir.Text)+’\’ + sUserName + ‘ ‘ + Trim(edDate.Text)+’.doc’;
  fName := sfname;
  //保存
  WordDocument1.SaveAs2000(fname);
  WordDocument1.Close;//关闭
end;  

2003-11-28 10:09:00   

 2003-11-28 10:12:35    控制使用 word 模板

procedure TFrmMain.SpeedButton9Click(Sender: TObject);
Var
 StrTemp : String;
 ZS : Integer;
 Nian, Yue, Ri : Word;

 ItemIndex :OleVariant;
 FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
 PasswordDocument, PasswordTemplate, Revert,
 WritePasswordDocument, WritePasswordTemplate, Format: OleVariant;

 FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike,
 MatchAllWordForms, Forward, Wrap, ReplaceWith, Replace: OleVariant;

 SaveChanges, OriginalFormat, RouteDocument: OleVariant;
begin
 FileName := ExtractFilePath(ParamStr(0)) + ‘DOC\考察材料.DOC’;
try
//  WordApplication1.Disconnect;
 WordApplication1.Connect;
except
 Application.MessageBox(‘连接WORD服务器失败,请确定您已经正确安装。’,'错误框’,MB_OK+MB_ICONSTOP);
 Abort;
end;

try
 Frmjd := TFrmjd.Create(Self);

 //显示进度
 Frmjd.ProgressBar1.Max:=100;
 Frmjd.Show;

 WordApplication1.Visible := False;
 WordApplication1.Caption := ‘干部考察材料’;

 //参数赋值
 ConfirmConversions := False;
 ReadOnly := False;
 AddToRecentFiles := False;
 PasswordDocument := ”;
 PasswordTemplate := ”;
 Revert := True;
 WritePasswordDocument := ”;
 WritePasswordTemplate := ”;
 Format := wdOpenFormatDocument;

 //打开文档(摸板)
 WordApplication1.Documents.Openold( FileName, ConfirmConversions,
   ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
   Revert, WritePasswordDocument, WritePasswordTemplate, Format );

 {Assign WordDocument component}
 ItemIndex := 1;
 WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));

 {Turn Spell checking of because it takes a long time if enabled and slows down Winword}
 WordApplication1.Options.CheckSpellingAsYouType := False;
 WordApplication1.Options.CheckGrammarAsYouType := False;

 //让Word替换标记字符串要使用WordDocument.Range.Find.Execute:姓名
 FindText := ‘<#XM>’;
 MatchCase := False;
 MatchWholeWord := True;
 MatchWildcards := False;
 MatchSoundsLike := False;
 MatchAllWordForms := False;
 Forward := True;
 Wrap := wdFindContinue;
 Format := False;
 ReplaceWith := DM.ADOQryMainXM.Value;
 Replace := wdReplaceAll;
 WordDocument1.Range.Find.Executeold( FindText, MatchCase, MatchWholeWord,
   MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
   Wrap, Format, ReplaceWith, Replace );
 Frmjd.ProgressBar1.Position := 10;//进度
 Frmjd.Update;//进度窗口刷新

直接在WORD模版上写出<#name>。
FindText := ‘<#XM>’;//这个是模板中的标记。
MatchCase := False;//匹配大小写。
MatchWholeWord := True;//匹配整个词语,这个不管,添True就行
MatchWildcards := False;//不清楚,这个不管,添False就行
MatchSoundsLike := False;//不清楚,这个不管,添False就行
MatchAllWordForms := False;//不清楚,这个不管,添False就行
Forward := True;//不清楚,这个不管,添True就行
Wrap := wdFindContinue;//不清楚,这个不管,用wdFindContinue就行
Format := False;//不清楚,这个不管,添False就行
ReplaceWith := DM.ADOQryMainXM.Value;//数据库的内容啊。
Replace := wdReplaceAll;//全部替换。

 

 2003-11-28 10:25:03    Delphi+Word解决方案参考[转]

   这是我做项目过程中自己做的几个函数,见到大家都在问Word的问题。现在拿出来和大家共享。(希望有朋友可以进一步添加新的功能,或者做成包或者lib等,更方便大家使用。我自己是没有时间啦,呵呵)

    使用前,先根据需要建立一个空的WORD文件作为模板,在模板文件中设置好各种格式和文本。另外,其中的PrnWordTable的参数是TDBGridEh类型的控件,取自Ehlib2.6

    其中用到的shFileCopy函数(用于复制文件)和guiInfo函数(用于显示消息框)也是自己编写的,代码也附后。

示范代码如下:

代码完成的功能:
  1. 替换打印模板中的“#TITLE#”文本为“示范代码1”
  2. 并且将DBGridEh1控件当前显示的内容插入到文档的末尾
  3. 在文档末尾插入一个空行
  4. 在文档末尾插入新的一行文本
  5. 将文档中的空行去掉

 if PrnWordBegin(‘C:\打印模板.DOC’,'C:\目标文件1.DOC’) then
 begin
   PrnWordReplace(‘#TITLE#’,'示范代码1′);
   PrnWordTable(DBGridEh1);
   PrnWordInsert(”);
   PrnWordInsert(‘这是新的一行文本’);
   PrnWordReplace(‘^p^p’,'^p’,true);
   PrnWordSave;
 end;

源代码如下:

//Word打印(声明部分)
   wDoc,wApp:Variant;
   function PrnWordBegin(tempDoc,docName:String):boolean;
   function PrnWordReplace(docText,newText:String;bSimpleReplace:boolean=false):boolean;
   function PrnWordInsert(lineText:String;bNewLine:boolean=true):boolean;overload;
   function PrnWordInsert(var imgInsert:TImage;sBookMark:String=”):boolean;overload;
   function PrnWordInsert(var chartInsert:TChart;sBookMark:String=”):boolean;overload;
   function PrnWordTable(var dbG:TDBGridEh;sBookMark:String=”):boolean;
   procedure PrnWordSave;
   procedure PrnWordEnd;

//Word打印(实现部分)
{
功能:基于模板文件tempDoc新建目标文件docName并打开文件
}
function PrnWordBegin(tempDoc,docName:String):boolean;
begin
 result:=false;
 //复制模版
 if tempDoc<>” then
   if not shFileCopy(tempDoc,docName) then exit;
 //连接Word
 try
   wApp:=CreateOleObject(‘Word.Application’);
 except
   guiInfo(‘请先安装 Microsoft Word 。’);
   exit;
 end;
 try
   //打开
   if tempDoc=” then
   begin
     //创建新文档
     wDoc:=wApp.Document.Add;
     wDoc.SaveAs(docName);
   end else begin
     //打开模版
     wDoc:=wApp.Documents.Open(docName);
   end;
 except
   guiInfo(‘打开模版失败,请检查模版是否正确。’);
   wApp.Quit;
   exit;
 end;
 wApp.Visible:=true;
 result:=true;
end;

{
功能:使用newText替换docText内容
bSimpleReplace:true时仅做简单的替换,false时对新文本进行换行处理
}
function PrnWordReplace(docText,newText:String;bSimpleReplace:boolean=false):boolean;
var i:Integer;
begin
 if bSimpleReplace then
 begin
   //简单处理,直接执行替换操作
 try
   wApp.Selection.Find.ClearFormatting;
   wApp.Selection.Find.Replacement.ClearFormatting;
   wApp.Selection.Find.Text := docText;
   wApp.Selection.Find.Replacement.Text :=newText;
   wApp.Selection.Find.Forward := True;
   wApp.Selection.Find.Wrap := wdFindContinue;
   wApp.Selection.Find.Format := False;
   wApp.Selection.Find.MatchCase := False;
   wApp.Selection.Find.MatchWholeWord := true;
   wApp.Selection.Find.MatchByte := True;
   wApp.Selection.Find.MatchWildcards := False;
   wApp.Selection.Find.MatchSoundsLike := False;
   wApp.Selection.Find.MatchAllWordForms := False;
   wApp.Selection.Find.Execute(Replace:=wdReplaceAll);
   result:=true;
 except
   result:=false;
 end;
   exit;
 end;

 //自动分行
 reWord.Lines.Clear;
 reWord.Lines.Add(newText);
 try
   //定位到要替换的位置的后面
   wApp.Selection.Find.ClearFormatting;
   wApp.Selection.Find.Text := docText;
   wApp.Selection.Find.Replacement.Text := ”;
   wApp.Selection.Find.Forward := True;
   wApp.Selection.Find.Wrap := wdFindContinue;
   wApp.Selection.Find.Format := False;
   wApp.Selection.Find.MatchCase := False;
   wApp.Selection.Find.MatchWholeWord := False;
   wApp.Selection.Find.MatchByte := True;
   wApp.Selection.Find.MatchWildcards := False;
   wApp.Selection.Find.MatchSoundsLike := False;
   wApp.Selection.Find.MatchAllWordForms := False;
   wApp.Selection.Find.Execute;
   wApp.Selection.MoveRight(wdCharacter,1);

   //开始逐行插入
   for i:=0 to reWord.Lines.Count-1 Do
   begin
     //插入当前行
     wApp.Selection.InsertAfter(reWord.Lines[i]);
     //除最后一行外,自动加入新行
     if i<reWord.Lines.Count-1 then
       wApp.Selection.InsertAfter(#13);
   end;

   //删除替换位标
   wApp.Selection.Find.ClearFormatting;
   wApp.Selection.Find.Replacement.ClearFormatting;
   wApp.Selection.Find.Text := docText;
   wApp.Selection.Find.Replacement.Text := ”;
   wApp.Selection.Find.Forward := True;
   wApp.Selection.Find.Wrap := wdFindContinue;
   wApp.Selection.Find.Format := False;
   wApp.Selection.Find.MatchCase := False;
   wApp.Selection.Find.MatchWholeWord := true;
   wApp.Selection.Find.MatchByte := True;
   wApp.Selection.Find.MatchWildcards := False;
   wApp.Selection.Find.MatchSoundsLike := False;
   wApp.Selection.Find.MatchAllWordForms := False;
   wApp.Selection.Find.Execute(Replace:=wdReplaceAll);
   result:=true;
 except
   result:=false;
 end;
end;

{
功能:打印TDBGridEh当前显示的内容
基于TDBGridEh控件的格式和内容,自动在文档中的sBookMark书签处生成Word表格
目前能够支持单元格对齐、多行标题(两行)、底部合计等特性
sBookMark:Word中要插入表格的书签名称
}
function PrnWordTable(var dbG:TDBGridEh;sBookMark:String=”):boolean;
var iCol,iLine,i,j,k:Integer;
   wTable,wRange:Variant;
   iRangeEnd:longint;
   iGridLine,iTitleLine:Integer;
   getTextText:String;getTextDisplay:boolean;
   titleList:TStringList;
   titleSplit,titleCol:Integer;
   lastTitleSplit,SubTitle:Integer;
   lastTitle:String;
begin
 result:=false;
 try
   //计算表格的列数(不包括隐藏的列)
   iTitleLine:=1;  //始终默认为1
   iCol:=0;
   for i:=0 to dbG.Columns.Count-1 Do
   begin
     if dbG.Columns[i].Visible then
     begin
       iCol:=iCol+1;
     end;
   end;

   //计算表格的行数(不包括隐藏的列)
   if dbG.DataSource.DataSet.Active then
     iLine:=dbG.DataSource.DataSet.RecordCount
   else
     iLine:=0;
   iGridLine:=iLine+iTitleLine+dbG.FooterRowCount;

   //定位插入点
   if sBookMark=” then
   begin
     //在文档末尾
     iRangeEnd:=wDoc.Range.End-1;
     if iRangeEnd<0 then iRangeEnd:=0;
     wRange:=wDoc.Range(iRangeEnd,iRangeEnd);
   end else begin
     //在书签处
     wRange:=wDoc.Range.Goto(wdGoToBookmark,,,sBookMark);
   end;
   wTable:=wDoc.Tables.Add(wRange,iGridLine,iCol);
   wTable.Columns.AutoFit;
   //标题行
   k:=1;
   for j:=1 to dbG.Columns.Count Do
   begin
     if dbG.Columns[j-1].Visible then
     begin
       if dbG.UseMultiTitle then
       begin
         titleList:=strSplit(dbG.Columns[j-1].Title.Caption,’|');
         wTable.Cell(1,k).Range.InsertAfter(titleList.Strings[0]);
       end else
         wTable.Cell(1,k).Range.InsertAfter(dbG.Columns[j-1].Title.Caption);

       //设置单元格对齐方式
       if dbG.Columns[j-1].Title.Alignment=taCenter then
         wTable.Cell(1,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphCenter
       else if dbG.Columns[j-1].Title.Alignment=taRightJustify then
         wTable.Cell(1,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphRight
       else if dbG.Columns[j-1].Title.Alignment=taLeftJustify then
         wTable.Cell(1,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphJustify;
       k:=k+1;
     end;
   end;

   //填写每一行
   if iLine>0 then
   begin
     dbG.DataSource.dataset.DisableControls;
     dbG.DataSource.DataSet.First;
     for i:=1 to iLine Do
     begin
       k:=1;
       for j:=1 to dbG.Columns.Count Do
       begin
         if dbG.Columns[j-1].Visible then
         begin
           if dbG.Columns[j-1].FieldName<>” then //避免由于空列而出错
           begin
             //如果该列有自己的格式化显示函数,则调用显示函数获取显示串
             getTextText:=”;
             if Assigned(dbG.DataSource.DataSet.FieldByName(dbG.Columns[j-1].FieldName).OnGetText) then
             begin
               dbG.DataSource.DataSet.FieldByName(dbG.Columns[j-1].FieldName).OnGetText(dbG.DataSource.DataSet.FieldByName(dbG.Columns[j-1].FieldName),getTextText,getTextDisplay);
               wTable.Cell(i+iTitleLine,k).Range.InsertAfter(getTextText);
             end else begin
               //使用数据库内容显示
               wTable.Cell(i+iTitleLine,k).Range.InsertAfter(dbG.DataSource.DataSet.FieldByName(dbG.Columns[j-1].FieldName).AsString);
             end;
           end;
           //设置单元格对齐方式
           if dbG.Columns[j-1].Alignment=taCenter then
             wTable.Cell(i+iTitleLine,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphCenter
           else if dbG.Columns[j-1].Alignment=taRightJustify then
             wTable.Cell(i+iTitleLine,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphRight
           else if dbG.Columns[j-1].Alignment=taLeftJustify then
             wTable.Cell(i+iTitleLine,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphJustify;
           k:=k+1;
         end;
       end;
       dbG.DataSource.DataSet.Next;
     end;
   end;
   //结尾行
   for i:=1 to dbG.FooterRowCount Do
   begin
     k:=1;
     for j:=1 to dbG.Columns.Count Do
     begin
       if dbG.Columns[j-1].Visible then
       begin
         wTable.Cell(iLine+1+i,k).Range.InsertAfter(dbG.GetFooterValue(i-1,dbG.Columns[j-1]));
         //设置单元格对齐方式
         if dbG.Columns[j-1].Footer.Alignment=taCenter then
           wTable.Cell(iLine+1+i,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphCenter
         else if dbG.Columns[j-1].Footer.Alignment=taRightJustify then
           wTable.Cell(iLine+1+i,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphRight
         else if dbG.Columns[j-1].Footer.Alignment=taLeftJustify then
           wTable.Cell(iLine+1+i,k).Range.ParagraphFormat.Alignment:=wdAlignParagraphJustify;
         k:=k+1;
       end;
     end;
   end;
   //处理多行标题
   if dbG.UseMultiTitle then
   begin
     //先分割单元格,再逐个填入第二行
     k:=1;
     titleCol:=1;
     lastTitleSplit:=1;
     SubTitle:=0;
     lastTitle:=”;
     for j:=1 to dbG.Columns.Count Do
     begin
       if dbG.Columns[j-1].Visible then
       begin
         titleList:=strSplit(dbG.Columns[j-1].Title.Caption,’|');
         if titleList.Count>1 then
         begin
           //处理第二行以上的内容
           wTable.Cell(1,k-SubTitle).Range.Cells.Split(titleList.Count,1,false);
           for titleSplit:=1 to titleList.Count-1 Do
           begin
             wTable.Cell(titleSplit+1,titleCol).Range.InsertAfter(titleList.Strings[titleSplit]);
           end;
           titleCol:=titleCol+1;
           //处理第一行合并
           if (lastTitleSplit=titleList.Count) and (lastTitle=titleList.Strings[0]) then
           begin
             //内容相同时,合并单元格
             wTable.Cell(1,k-SubTitle).Range.Copy;
             wRange:=wDoc.Range(wTable.Cell(1,k-SubTitle-1).Range.Start,wTable.Cell(1,k-SubTitle).Range.End);
             wRange.Cells.Merge;
             wRange.Paste;
             SubTitle:=SubTitle+1;
           end;
         end;
         lastTitle:=titleList.Strings[0];
         lastTitleSplit:=titleList.Count;
         titleList.Clear;titleList.Free;
         k:=k+1;
       end;
     end;
   end;

   //自动调整表格
   wTable.AutoFitBehavior(1);//根据内容自动调整表格wdAutoFitContent
   wTable.AutoFitBehavior(2);//根据窗口自动调整表格wdAutoFitWindow
   result:=true;
 except
   result:=false;
 end;
 try
   dbG.DataSource.dataset.EnableControls;
 except
 end;
end;

{
功能:在Word文件中插入文本(能够自动进行换行处理)
lineText:要插入的文本
bNewLine:true时新起一行,false时在当前行插入
}
function PrnWordInsert(lineText:String;bNewLine:boolean=true):boolean;
var i:Integer;
begin
 try
   if bNewLine then
     wDoc.Range.InsertAfter(#13);
   //自动分行
   reWord.Lines.Clear;
   reWord.Lines.Add(lineText);
   //开始逐行插入
   for i:=0 to reWord.Lines.Count-1 Do
   begin
     //插入当前行
     wDoc.Range.InsertAfter(reWord.Lines[i]);
     //除最后一行外,自动加入新行
     if i<reWord.Lines.Count-1 then
       wDoc.Range.InsertAfter(#13);
   end;
   result:=true;
 except
   result:=false;
 end;
end;

{
功能:在Word文件的sBookMark书签处插入TImage控件包含的图片
}
function PrnWordInsert(var imgInsert:TImage;sBookMark:String=”):boolean;
var wRange:Variant;iRangeEnd:Integer;
begin
 try
   if sBookMark=” then
   begin
     //在文档末尾
     iRangeEnd:=wDoc.Range.End-1;
     if iRangeEnd<0 then iRangeEnd:=0;
     wRange:=wDoc.Range(iRangeEnd,iRangeEnd);
   end else begin
     //在书签处
     wRange:=wDoc.Range.Goto(wdGoToBookmark,,,sBookMark);
   end;
   if imgInsert.Picture.Graphic<>nil then
   begin
     Clipboard.Assign(imgInsert.Picture);
     wRange.Paste;
   end else begin
     wRange.InsertAfter(‘照片’);
   end;
   result:=true;
 except
   result:=false;
 end;
end;

{
功能:在书签sBookMark处插入TChart控件包含的图表
}
function PrnWordInsert(var chartInsert:TChart;sBookMark:String=”):boolean;
var wRange:Variant;iRangeEnd:Integer;
begin
 try
   if sBookMark=” then
   begin
     //在文档末尾
     iRangeEnd:=wDoc.Range.End-1;
     if iRangeEnd<0 then iRangeEnd:=0;
     wRange:=wDoc.Range(iRangeEnd,iRangeEnd);
   end else begin
     //在书签处
     wRange:=wDoc.Range.Goto(wdGoToBookmark,,,sBookMark);
   end;
   chartInsert.CopyToClipboardBitmap;
   wRange.Paste;
   result:=true;
 except
   result:=false;
 end;
end;

{
功能:保存Word文件
}
procedure PrnWordSave;
begin
 try
   wDoc.Save;
 except
 end;
end;

{
功能:关闭Word文件
}
procedure PrnWordEnd;
begin
 try
   wDoc.Save;
   wDoc.Close;
   wApp.Quit;
 except
 end;
end;

附:shFileCopy源代码
{
功能:安全的复制文件
srcFile,destFile:源文件和目标文件
bDelDest:如果目标文件已经存在,是否覆盖
返回值:true成功,false失败
}
function shFileCopy(srcFile,destFile:String;bDelDest:boolean=true):boolean;
begin
 result:=false;
 if not FileExists(srcFile) then
 begin
   guiInfo (‘源文件不存在,不能复制。’+#10#13+srcFile);
   exit;
 end;
 if srcFile=destFile then
 begin
   guiInfo (‘源文件和目标文件相同,不能复制。’);
   exit;
 end;
 if FileExists(destFile) then
 begin
   if not bDelDest then
   begin
     guiInfo (‘目标文件已经存在,不能复制。’+#10#13+destFile);
     exit;
   end;
   FileSetAttr(destFile,FileGetAttr(destFile) and not $00000001);
   if not DeleteFile(PChar(destFile)) then
   begin
     guiInfo (‘目标文件已经存在,并且不能被删除,复制失败。’+#10#13+destFile);
     exit;
   end;
 end;
 if not CopyFileTo(srcFile,destFile) then
 begin
   guiInfo (‘发生未知的错误,复制文件失败。’);
   exit;
 end;
 //目标文件去掉只读属性
 FileSetAttr(destFile,FileGetAttr(destFile) and not $00000001);
 result:=true;
end;

附:guiInfo源代码
{
功能:封装了各种性质的提示框
sMsg:要提示的消息
}
procedure guiInfo(sMsg:String);
begin
 MessageDlg(sMsg,mtInformation,[mbOK],0);
end;

文章很老了,但是这篇文章很好,推荐像我一样的excel菜鸟多多读读,大有裨益。

(一) 使用动态创建的方法
首先创建 Excel 对象,使用ComObj:
    var ExcelApp: Variant;
    ExcelApp := CreateOleObject( ‘Excel.Application’ );
 1) 显示当前窗口:
    ExcelApp.Visible := True;
 2) 更改 Excel 标题栏:
    ExcelApp.Caption := ‘应用程序调用 Microsoft Excel’;
 3) 添加新工作簿:
    ExcelApp.WorkBooks.Add;
 4) 打开已存在的工作簿:
    ExcelApp.WorkBooks.Open( ‘C:\Excel\Demo.xls’ );
 5) 设置第2个工作表为活动工作表:
    ExcelApp.WorkSheets[2].Activate;  或
    ExcelApp.WorksSheets[ 'Sheet2' ].Activate;
 6) 给单元格赋值:
    ExcelApp.Cells[1,4].Value := ‘第一行第四列’;
 7) 设置指定列的宽度(单位:字符个数),以第一列为例:
    ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
 8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
    ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
 9) 在第8行之前插入分页符:
    ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
 10) 在第8列之前删除分页符:
    ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
 11) 指定边框线宽度:
    ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
    1-左    2-右   3-顶    4-底   5-斜( \ )     6-斜( / )
 12) 清除第一行第四列单元格公式:
    ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
 13) 设置第一行字体属性:
    ExcelApp.ActiveSheet.Rows[1].Font.Name := ‘隶书’;
    ExcelApp.ActiveSheet.Rows[1].Font.Color  := clBlue;
    ExcelApp.ActiveSheet.Rows[1].Font.Bold   := True;
    ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;
 14) 进行页面设置:
  a.页眉:
    ExcelApp.ActiveSheet.PageSetup.CenterHeader := ‘报表演示’;
  b.页脚:
    ExcelApp.ActiveSheet.PageSetup.CenterFooter := ‘第&P页’;
  c.页眉到顶端边距2cm:
    ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
  d.页脚到底端边距3cm:
    ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
  e.顶边距2cm:
    ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;
  f.底边距2cm:
    ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
  g.左边距2cm:
    ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
  h.右边距2cm:
    ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
  i.页面水平居中:
    ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
  j.页面垂直居中:
    ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
  k.打印单元格网线:
    ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
 15) 拷贝操作:
  a.拷贝整个工作表:
    ExcelApp.ActiveSheet.Used.Range.Copy;
  b.拷贝指定区域:
    ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;
  c.从A1位置开始粘贴:
    ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
  d.从文件尾部开始粘贴:
    ExcelApp.ActiveSheet.Range.PasteSpecial;
 16) 插入一行或一列:
  a. ExcelApp.ActiveSheet.Rows[2].Insert;
  b. ExcelApp.ActiveSheet.Columns[1].Insert;
 17) 删除一行或一列:
  a. ExcelApp.ActiveSheet.Rows[2].Delete;
  b. ExcelApp.ActiveSheet.Columns[1].Delete;
 18) 打印预览工作表:
    ExcelApp.ActiveSheet.PrintPreview;
 19) 打印输出工作表:
    ExcelApp.ActiveSheet.PrintOut;
 20) 工作表保存:
    if not ExcelApp.ActiveWorkBook.Saved then
    ExcelApp.ActiveSheet.PrintPreview;
 21) 工作表另存为:
    ExcelApp.SaveAs( ‘C:\Excel\Demo1.xls’ );
 22) 放弃存盘:
    ExcelApp.ActiveWorkBook.Saved := True;
 23) 关闭工作簿:
    ExcelApp.WorkBooks.Close;
 24) 退出 Excel:
    ExcelApp.Quit;

(二) 使用Delphi 控件方法
    在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
 1)  打开Excel
    ExcelApplication1.Connect;
 2) 显示当前窗口:
    ExcelApplication1.Visible[0]:=True;
 3) 更改 Excel 标题栏:
    ExcelApplication1.Caption := ‘应用程序调用 Microsoft Excel’;
 4) 添加新工作簿:
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
 5) 添加新工作表:
    var Temp_Worksheet: _WorkSheet;
    begin
      Temp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
      ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
    End;
 6) 打开已存在的工作簿:
    ExcelApplication1.Workbooks.Open (c:\a.xls
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
 7) 设置第2个工作表为活动工作表:
    ExcelApplication1.WorkSheets[2].Activate;  或
    ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
 8) 给单元格赋值:
    ExcelApplication1.Cells[1,4].Value := ‘第一行第四列’;
 9) 设置指定列的宽度(单位:字符个数),以第一列为例:
    ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;
 10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
    ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
 11) 在第8行之前插入分页符:
    ExcelApplication1.WorkSheets[1].Rows[8].PageBreak := 1;
 12) 在第8列之前删除分页符:
    ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;
 13) 指定边框线宽度:
    ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
    1-左    2-右   3-顶    4-底   5-斜( \ )     6-斜( / )
 14) 清除第一行第四列单元格公式:
    ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;
 15) 设置第一行字体属性:
    ExcelApplication1.ActiveSheet.Rows[1].Font.Name := ‘隶书’;
    ExcelApplication1.ActiveSheet.Rows[1].Font.Color  := clBlue;
    ExcelApplication1.ActiveSheet.Rows[1].Font.Bold   := True;
    ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True;
 16) 进行页面设置:
  a.页眉:
    ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := ‘报表演示’;
  b.页脚:
    ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := ‘第&P页’;
  c.页眉到顶端边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
  d.页脚到底端边距3cm:
    ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
  e.顶边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035;
  f.底边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
  g.左边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
  h.右边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035;
  i.页面水平居中:
    ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
  j.页面垂直居中:
    ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
  k.打印单元格网线:
    ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;
 17) 拷贝操作:
  a.拷贝整个工作表:
    ExcelApplication1.ActiveSheet.Used.Range.Copy;
  b.拷贝指定区域:
    ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
  c.从A1位置开始粘贴:
    ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;

  d.从文件尾部开始粘贴:
    ExcelApplication1.ActiveSheet.Range.PasteSpecial;
 18) 插入一行或一列:
  a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
  b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
 19) 删除一行或一列:
  a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
  b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
 20) 打印预览工作表:
    ExcelApplication1.ActiveSheet.PrintPreview;
 21) 打印输出工作表:
    ExcelApplication1.ActiveSheet.PrintOut;
 22) 工作表保存:
    if not ExcelApplication1.ActiveWorkBook.Saved then
      ExcelApplication1.ActiveSheet.PrintPreview;
 23) 工作表另存为:
    ExcelApplication1.SaveAs( ‘C:\Excel\Demo1.xls’ );
 24) 放弃存盘:
    ExcelApplication1.ActiveWorkBook.Saved := True;
 25) 关闭工作簿:
    ExcelApplication1.WorkBooks.Close;
 26) 退出 Excel:
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;

(三) 使用Delphi 控制Excle二维图
    在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet
    var asheet1,achart, range:variant;
  1)选择当第一个工作薄第一个工作表
    asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];
  2)增加一个二维图
    achart:=asheet1.chartobjects.add(100,100,200,200);
  3)选择二维图的形态
    achart.chart.charttype:=4;
  4)给二维图赋值
    series:=achart.chart.seriescollection;
    range:=sheet1!r2c3:r3c9;
    series.add(range,true);
  5)加上二维图的标题
    achart.Chart.HasTitle:=True;
    achart.Chart.ChartTitle.Characters.Text:=’ Excle二维图’          
  6)改变二维图的标题字体大小
    achart.Chart.ChartTitle.Font.size:=6;
  7)给二维图加下标说明
    achart.Chart.Axes(xlCategory, xlPrimary).HasTitle := True;
    achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := ‘下标说明’;
  8)给二维图加左标说明
    achart.Chart.Axes(xlValue, xlPrimary).HasTitle := True;
    achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := ‘左标说明’;
  9)给二维图加右标说明
    achart.Chart.Axes(xlValue, xlSecondary).HasTitle := True;
    achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text := ‘右标说明’;
  10)改变二维图的显示区大小
    achart.Chart.PlotArea.Left := 5;
    achart.Chart.PlotArea.Width := 223;
    achart.Chart.PlotArea.Height := 108;
  11)给二维图坐标轴加上说明
    achart.chart.seriescollection[1].NAME:=’坐标轴说明’; 

 提供在DELPHI中用程序实现EXCEL单元格合并的源码

For Row:=1 to RowDepth-1 Do
 Begin
   CapStr:=trim(exApp.Cells[Row,1].value);
   Col1:=2;
   Col2:=FldCount;
   For Col1:=2 to Col2 Do
   begin
     NewCapStr:=trim(exApp.Cells[Row,Col1].value);
     if (NewCapStr=CapStr) then
     Begin
       Cell1:=exApp.Cells.Item[Row,Col1-1];
       Cell2:=exApp.Cells.Item[Row,Col1];
       exApp.Cells[Row,Col1].value:=”;
       exApp.Range[Cell1,Cell2].Merge(True);
     end
     else
     begin
       CapStr:=NewCapStr;
     end;
   end;
 end;

 

 2004-2-4 16:04:49    数据库图片插入到excel中

uses:clipbrd
var
 MyFormat:Word;
 AData:THandle;      //临时句柄变量。
 APalette:HPALETTE;  //临时变量。
 Stream1:TMemoryStream;//TBlobStream
 xx:tbitmap;
           Stream1:= TMemoryStream.Create;
           TBlobField(query.FieldByName(‘存储图片的字段’)).SaveToStream(Stream1);
           Stream1.Position :=0;
           xx:=tbitmap.Create ;
           xx.LoadFromStream(Stream1);
           xx.SaveToClipboardFormat(MyFormat,AData,APalette);
           ClipBoard.SetAsHandle(MyFormat, AData);
           myworksheet1.Range['g3','h7'].select;//myworksheet1是当前活动的sheet页
           myworksheet1.Paste;