ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: YMJWJC

[原创] [原创]网络excel 让excel成为网络版(免配置绿色IIS)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2008-9-30 16:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

特想得到您的指教,请发一份好吗

QUOTE:
QUOTE:
QUOTE:
QUOTE:
QUOTE:
以下是引用YMJWJC在2008-7-9 16:19:38的发言:

excel 通过ASP结合OWC技术实现在网络中共享,基本功能已实现,欢迎讨论!!!

解压后,配置IIS环境,虚拟目录,就可用!!

 

谢谢5楼贴出测试网址:


 http://zlt.bfjy.com.cn/www/excel/index.asp

请大家试用后多提意见!!

QUOTE:

TA的精华主题

TA的得分主题

发表于 2008-11-28 14:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
LS,最近正在探索这个问题…想学习一下,烦请发一份给我cx0210@yahoo.com.cn  谢谢

TA的精华主题

TA的得分主题

发表于 2008-11-28 23:59 | 显示全部楼层
为何不使用 Windows SharePoint Services ,还要自己来折腾

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-12-4 19:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
菜鸟自建EXCEL网络数据上报平台

又近一年岁未,单位需要采集、统计、处理的数据也越来越多,虽然Microsoft Excel从很早开始就支持多用户协作办公,但它的功能过于简单,微软也提供了很多协作办公解决方案,网络上也出现了Excel服务器等软件,但这都需要支付一定费用,并要求操作员拥有全面扎实的电脑技术才能实现。现在你只要有稍有Excel、ASP基础,这款菜鸟自建的EXCEL网络平台一定适合你,从此网络环境中EXCEL数据上报收集、多用户协同工作就会非常轻松。
一、        软件准备:
1.        绿色免安装的iis服务器Aspweb,一套简洁的ASP服务器,把您的ASP程序COPY到解压后目录中的WWWROOT的目录下即可。 浏览器输入自己电脑的ip即可访问asp程序。
下载地址:http://www.mct86.com/thread-679-1-1.html
2.        owc11(Office Web Components):Office Web Components 可用于将电子表格、图表和数据库发布到网站上。
下载地址:
http://download.microsoft.com/do ... a877c0d1e/owc11.exe
二、         网站制作:
1、        先建主网页webExcel.asp,在网页中引用OWC11,客户端在IE中并显示、编辑服务器上的EXCEL文件
<html>
<Title>webExcel</Title>
<body>
<div
style="text-align:left;background:buttonface;border-bottom:inset
1px white;border-right:outset 1px white;">
<b>目录:</b><input type="text" name="danwei" size="20"  value="excel">
‘wwwroot下存放excel文件的目录
<b>表名:</b><input type="text" name="excelid" size="20" value="888.xls">
‘名为”888.xls”文件
<input type="button" value="显示" OnClick="findzc()">
<input type="button" value="更新" OnClick="addsave()">
</div>
<object classid="clsid:0002E551-0000-0000-C000-000000000046"
id="Spread1" style="width:100%;height:95%;">
</object>
</body>
</html>

2、        在主网页中添加加两个函数findzc()和addsave(),利用XMLHTTP无刷新技术显示、编辑EXCEL,并传回服务器。
<script language="javascript">
var strResult = "";
function findzc() //显示
{
   Spread1.worksheets("Sheet1").Select();
   Spread1.ActiveSheet.Cells.Clear();
    var oBao = new ActiveXObject("Microsoft.XMLHTTP");  
    var userInfo1= "dwbm=" + document.all.danwei.value+"|"+document.all.excelid.value;
    oBao.open("POST","xiazai.asp",false);
    oBao.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    oBao.send(userInfo1);      
  strResult = unescape(oBao.responseText);
    var arrResult = strResult.split("#");
     var iii=arrResult.length;
    for( i=0;i<iii;i++){
    var arrTmp = arrResult.split("|");
for( x=0;x<=arrTmp.length;x++){   
   Spread1.worksheets("Sheet1").cells(i+1,x+1).value=arrTmp[x];
  }
  }
  Spread1.worksheets("Sheet1").range("a1:Z2").EntireColumn.AutoFit();     
  }
function AddDataPost(sName) {
var oBao = new ActiveXObject("Microsoft.XMLHTTP");
sName = escape(sName);
var
userInfo="dwbm="+document.all.danwei.value+"|"+document.all.excelid.value+"&strx="+sName;
oBao.open("POST","shangchuang.asp",false);
oBao.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
oBao.send(userInfo);
alert(unescape(oBao.responseText));
}
function addsave()//更新
{
var str=null;
var ssConstants = Spread1.Constants;
var r=Spread1.worksheets("Sheet1").Range("A10000").End(ssConstants.xlUp).row;  
var c=Spread1.worksheets("Sheet1").Range("AA1").End(ssConstants.xlToleft).column;
var sResult = new Array();
var sResult1 = new Array();
var arrResult = strResult.split("#");
var iii=arrResult.length;
for(var j=0;j<r;j++){
for(var i=0;i<c;i++){
sResult1= Spread1.worksheets("Sheet1").cells(j+1,i+1).value;
}
var sstr=sResult1.join("|");

if(j<1||j>iii){            
sResult[sResult.length]=sstr;
}
else if(arrResult[j]!=sstr){
sResult[sResult.length]=sstr;
}  
   }
str=sResult.join("#");
AddDataPost(str);
}
</script>
3、        再建两个用于传输的网页,xiazai.asp用于下载显示,shangchuang.asp用于更新上传,它们通过ADO于EXCEL文件连接,把EXCEL文件既作采集表又作数据库。
xiazai.asp:
<% @Language="javascript" %>
<%
function OpenDB(sdbname){
var connstr = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" + Server.MapPath(sdbname);
var connn = Server.CreateObject("ADODB.Connection");
connn.Open(connstr);
return connn;
}
var dwbm = unescape(Request.Form("dwbm"));
var arrResult1 = dwbm.split("|");
var dw=arrResult1[0];
var bm=arrResult1[1];
var sResult = new Array();
var sResult1 = new Array();
var dwbmpath= dw+"/"+bm;
var oConn = OpenDB(dwbmpath);
var sql ="select * from [sheet1$]";
var rs = oConn.Execute(sql);
for( i=0;i<rs.Fields.count;i++){
sResult1= rs.Fields(i).name;
}   
sResult[sResult.length]=sResult1.join("|");   
while(!rs.EOF){
for( i=0;i<rs.Fields.count;i++){
sResult1= rs.Fields(i).Value;     
}
sResult[sResult.length]=sResult1.join("|");
rs.MoveNext();
}
rs.close;
rs = null;
Response.Write(escape(sResult.join("#")));   
%>

shangchuang.asp:
<% @Language="JavaScript" %>
<%
function OpenDB(sdbname)
{
var connstr = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" + Server.MapPath(sdbname)+";
var conn = Server.CreateObject("ADODB.Connection");
conn.Open(connstr);
return conn;
}
var strr=null;
var dwbm = unescape(Request.Form("dwbm"));
var arrResult1 = dwbm.split("|");
var dw=arrResult1[0];
var bm=arrResult1[1];
var dwbmpath= dw+"/"+bm;
var oConn = OpenDB(dwbmpath);
var str = unescape(Request.Form("strx"));
var sResult = new Array();
var sResult2 = new Array();
var arrResult = str.split("#");
var zdmcResult =arrResult[0].split("|");//获取字段名称
var iii=arrResult.length;
for( i=1;i<iii;i++){
var arrTmp = arrResult.split("|");
for(var x=0;x<arrTmp.length;x++)
{
var sqlstr= "select * from [sheet1$] where "+ zdmcResult[0]+"="+arrTmp[0];     
var rs = oConn.Execute(sqlstr);
if(!rs.EOF)
{
strr= zdmcResult[0];
sResult[x]=zdmcResult[x]+"='"+ arrTmp[x]+"'";
var sql1=sResult.join(",");
var sql = "UPDATE [sheet1$] SET "+sql1+" WHERE "+ zdmcResult[0]+"="+arrTmp[0];
strr="记录已更新!!";
}
else{
  sResult[x]=zdmcResult[x];
sResult2[x]= "'"+arrTmp[x]+"'";
var sql1=sResult.join(",");
var sql2=sResult2.join(",");
var sql = "Insert into [sheet1$]("+sql1+")Values("+sql2+")";
strr="记录已添加!!";
}
}
oConn.Execute(sql);
}
if (strr==null){
strr="没有更新或添加记录!!";
}
Response.Write(escape(strr));
%>
4、        为了灵活地选择不同的EXCEL文件,在wwwroot下建文件夹excel,用于存放多个需共享的excel文件,再建网页left.asp,用于显示并选择excel文件。
left.asp:
<%   
sub   showimg(foldername)   
  set   fso=server.CreateObject("scripting.filesystemobject")   
  set   objfolder=fso.getfolder(server.MapPath(""&foldername&""))   
  set   files=objfolder.files   
   response.write "当前目录:"&foldername&"<br><br>"  
   response.write "EXCEL文件:<br>"
  for   each   f   in   files   
  if  mid(f.name,len(f.name)-3,len(f.name))=".xls" then     
  response.write "<div onclick=excelsa('"&foldername&"','"&f.name&"');><a href="&"#here"&" >"&f.name&"</a></div><br>"
  end   if      
  next      
  end   sub      
  call   showimg("excel")  ‘文件夹名称
  %>
5、        建网页index.asp,启动并协调相关网页。
index.asp:
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>webexcel</title>
</head>
<%@language=vbscript%>
<frameset  cols="10%,70%" framespacing="0" border="0" frameborder="1" bordercolor="#003330" marginhight="0">       
<frame name="frame2" src="left.asp" name="Main1" scrolling="Auto">
<frame name="frame3" src="webexcel.asp" name="Main2" scrolling="no"marginwidth="0">
</frameset>       
</html>

三、        网站发布
1、        整个发布包有index.asp、webExcel.asp、left.asp、xiazai.asp、shangchuang.asp等五个网页及保存excel文件的文件夹,把这些文件放到Aspweb下wwwroot目录下webExcel目录中,如下图:

2、        启动AspWeb.exe


3、        通过IE浏览、编辑excel文件,IE地址栏中输入:http://127.0.0.1:2008/WEBEXCEL/index.ASP,“2008”是端口号,如果您的电脑未安装其他服务器,端口为“80”,便可忽略。http://127.0.0.1/WEBEXCEL/index.ASP


四、        编后说明,本EXCEL网络平台简单,且免安装易维护,但由于本人不是专业网络编程人员,考虑难以周全,一是excel文件中不能含有中文字符,二是更新时不能删行,这是微软ADO连接excel的bug,三是设计excel空表时应注意,表格第一行尽量用中文,且用IE编辑时不能修改表头。
在这里只想给大家一个思路,起到抛砖引玉的作用。
欢迎大家与我讨论:ymjwjc@163.com.

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-12-4 19:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Windows SharePoint Services 我试过,需要银子注册,环境配置难,一般人难成功,ASP +OWC免费,免安装纯绿色,修改容易。

TA的精华主题

TA的得分主题

发表于 2008-12-4 19:41 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-12-4 19:43 | 显示全部楼层
自己在第一楼找,代码复制就可以运行

TA的精华主题

TA的得分主题

发表于 2008-12-4 20:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不错,谢谢楼主分享!

TA的精华主题

TA的得分主题

发表于 2008-12-22 10:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
很需要哟
,能否给我发一份?
sxhus@163.com

谢谢楼主了~~~~

[ 本帖最后由 sxhus 于 2008-12-22 10:09 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-12-28 18:53 | 显示全部楼层
其实第一楼代码复制在一起后,就可运行.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-6 10:47 , Processed in 0.038898 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表