下面的程序在客户端还可以,但是加上RUNAT="Server"就出错,为什么? (200分)

  • 主题发起人 主题发起人 mzs0923
  • 开始时间 开始时间
M

mzs0923

Unregistered / Unconfirmed
GUEST, unregistred user!
rs是前面程序取得的记录集。
下面的程序在客户端还可以,但是加上RUNAT="Server"就出错,为什么?
<SCRIPT LANGUAGE="JScript" RUNAT="Server">

// Start Excel and get Application object.
var oXL = new ActiveXObject("Excel.Application");


oXL.Visible = false;


// Get a new workbook.
var oWB = oXL.Workbooks.Add();

var oSheet = oWB.ActiveSheet;


// Add table headers going cell by cell.
oSheet.Cells(1, 1).Value = "名称";


<%
dim I
I=2
do
while not rs.eof
%>

// Add the detail date
oSheet.Cells(<%=I%>, 1).Value = "<%=Rs("cal_name")%>";


<%
Rs.MoveNext
I=I+1
Loop
%>

// Format A1:D1 as bold, vertical alignment = center.
oSheet.Range("A1", "L1").Font.Bold = true;

oSheet.Range("A1", "L1").VerticalAlignment = -4108;
//xlVAlignCenter

// AutoFit columns A:D.
oRng = oSheet.Range("A1", "L2");

oRng.EntireColumn.AutoFit();


// Make sure Excel is visible and give the user control
// of Excel's lifetime.
oXL.Visible = false;

oXL.UserControl = false;

oXL.Quit;

</script>
 
hoho,你这是个asp文件,怎么可能把客户端的代码放到服务器端执行呢
用<% %>括起来的才是在服务器端执行的代码.
 
把这段JSCRIPT都改成ASP代码吧。你的Excel.Application看看能不能用ASP的CreateObject来创建,如果不行的话,就用在服务端regsvr32注册一下。
 
to x900:
RUNAT="Server"不就是提示要在服务器段执行的么?
 
如果你想让<script></script>中的代码在服务器端正确执行,最起码的一点语言要一致,你在<script>中用的Jscript,在<% %>中用的vbScript,这在同一个页面里用两种语言,叫服务器怎么解析?
即使语言一致,象这种用同时将两种包含服务器端代码的方式
(<script runat="server"></script>..<% %>)
用在一个页面里也是不推荐的
 
我这样写好像在服务器端也生不成excel,这是为什么?
<SCRIPT LANGUAGE="vbscript" RUNAT="Server">
dim oXL,objExcelBook
dim strAddr
Set oXL = CreateObject("excel.application")
oXL.DisplayAlerts = false
oXL.Application.Visible = false
oXL.WorkBooks.add
set objExcelBook = oXL.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
strAddr = Server.MapPath(".")
objExcelBook.SaveAs strAddr &amp;
"/excel/Table.xls"
oXL.Quit
</script>
 
希望有人能够回答。
 
Set oXL = CreateObject("excel.application")
这句话限定了只能够在客户端来创建一个oXL的对象,
如果写成
Set oXL = Server.CreateObject("Excel.Application")
这段代码必须装在<%%>里,而且必须是function的。语言使用javascript,而不是默认的VBscript.
 
后退
顶部