ActiveXObject

1 篇文章 0 订阅
0 篇文章 0 订阅
 

ActiveXObject使用:

前提IE必须加此站点为信任 

写本地文件:

var fso = new ActiveXObject("Scripting.FileSystemObject");

 tmpFolder = fso.GetSpecialFolder(2);

 var fileName=tmpFolder+"\\"+fileNamestr+".xls";

 viewer.SaveReport(fileName);

fileName=fileName.replace(/\\/g, "\\\\");

改写<input type="file" >或<html:file property="file1" size="60"  value="浏览..."></html:file>默认路径

document.all["file1"].focus(); 

var  WshShell=new  ActiveXObject("WScript.Shell"); 

window.clipboardData.setData("Text","<%=fileName%>");  

WshShell.sendKeys("^v");

ActiveXObject函数的使用

newObj = new ActiveXObject(servername.typename[, location]) 参数 newObj 必选项。要赋值为 ActiveXObject 的变量名。 servername 必选项。提供该对象的应用程序的名称。 typename 必选项。要创建的对象的类型或类。 location 可选项。创建该对象的网络服务器的名称。说明 Automation 服务器至少提供一类对象。例如,字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。要创建 Automation 对象,将新的 ActiveXObject 赋给对象变量: var ExcelSheet; ExcelApp = new ActiveXObject("Excel.Application"); ExcelSheet = new ActiveXObject("Excel.Sheet"); 本代码启动创建对象的应用程序(在这种情况下,Microsoft Excel 工作表)。一旦对象被创建,就可以用定义的对象变量在代码中引用它。在下面的例子中,通过对象变量 ExcelSheet 。

ActiveXObject其实就是以一个字符串为参数的函数。我写了一个对象由于没有加引号调用,结果就是报没有这个对象。搞了好久。现在想想,作为参数就是字符串,数字,内存地址和集合(包括数组,对象等等)几类。作为脚本语言的一个顶层函数可以识别的也就字符串和数字了。对象需要知道是什么对象,它哪里知道。

在ATL中生成函数注意两点a) 使用向导时候在类的接口处添加函数。b)向导中只能添加参数类型,参数名称自己手工加入即可。

JavaScript访问数据库

var conn = new ActiveXObject("ADODB.Connection");

//var XDom = new ActiveXObject("MSXML.DOMDocument");

var rs = new ActiveXObject("ADODB.Recordset");

conn.Open("Provider=OraOLEDB.Oracle;data source=ora;user );

var sSQL = "select co.COMPANY_NAME,ca.ASSET_CARD_NO,ca.ASSET_CARD_NAME,da.DEPARTMENT_NAME,pe.FIRST_NAME || pe.LAST_NAME as"

        + " Name,us.USER_NAME FROM COMPANY co,ZC_ASSET_CARD ca,DEPARTMENT da,PERSON pe,USER_LOGIN us where "

       + "co.COMPANY_PARTY_ID = ca.COMPANY_PARTY_ID and da.DEPARTMENT_PARTY_ID = ca.DEPARTMENT_ID and "

       + "pe.PARTY_ID=ca.EMPLOYEE_ID and us.USER_LOGIN_ID = ca.FH_USER_LOGIN_ID and ca.FH_USER_LOGIN_ID='01'";

rs.open(sSQL,conn);

  

   shtml = "<table width='70%' border=1>";

   shtml +="<tr bgcolor='#f4f4f4'><td>使用单位</td><td>资产编号</td><td>资产名称</td><td>使用部门</td><td>使用职员</td>";

   shtml += "<td>复核状态</td></tr>";

   while (!rs.EOF){

     shtml += "<tr><td>" + rs("COMPANY_NAME") + "</td><td>" + rs("ASSET_CARD_NO") + "</td><td>" + rs("ASSET_CARD_NAME") + "</td>     <td>" + rs("DEPARTMENT_NAME") + "</td><td>" + rs("Name") + "</td><td>" + rs("USER_NAME") + "</td>" + "</tr>";

     rs.moveNext;

   }

   shtml += "</table>";

   document.write(shtml);

   rs.close();

   rs = null;

   conn.close();

   conn = null;

var ExcelSheet;ExcelSheet = new ActiveXObject("Excel.在下面的例子中,通过对象变量 ExcelSheet 访问新对象的属性和方法和其他 Excel 对象,//包括 Application 对象和 ActiveSheet.Cells 集合。// 使 Excel 通过 Application 对象可见。// 用 Application 对象用 Quit 方法关闭 Excel。

例子:

<BODY>

<SCRIPT language=javascript>

///*Parameter :打開指定Excel

function OpenExcel(){

var oExcel;

var oWorkbook;

var strAllName;

oExcel = new ActiveXObject("Excel.Application");

strAllName="E:/excel匯入界面/Excel導出到表格.xls";

//alert(strAllName)

oExcel.Workbooks.Open(strAllName);

oExcel.DisplayAlerts = false;

oExcel.Visible = true;

//防EExcel死進程的關鍵!!必須!!!downmoon嚴重聲明

//idTmr = window.setInterval("Cleanup();",1000);

}

function Cleanup(){

window.clearInterval(idTmr);

CollectGarbage();

}

///*Parameter :把表格內容匯入到Excel

function InExcel() {

var oXL = new ActiveXObject("Excel.Application"); //創建應該對象

var oWB = oXL.Workbooks.Add();//新建一個Excel工作簿

var oSheet = oWB.ActiveSheet;//指定要寫入內容的工作表為活動工作表

var table = document.all.data;//指定要寫入數據源的id

var hang = table.rows.length;//取數據源行數

var lie = table.rows(0).cells.length;//取數據源列數

 

// Add table headers going cell by cell.

for (i=0;i<hang;i++){//在Excel中寫行

  for (j=0;j<lie;j++){//在Excel中寫列

    //隅砱跡宒

    oSheet.Cells(i+1,j+1).NumberFormatLocal = "@";

    //!!!!!!!上面這句是將單元格的格式定義為文本

    oSheet.Cells(i+1,j+1).Font.Bold = true;//加粗

    oSheet.Cells(i+1,j+1).Font.Size = 10;//字體大小

    oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;//向單元格中寫入值

  }

}

oXL.Visible = true;

oXL.UserControl = true;

}

///*Parameter :把Excel內容匯出到表格

  function OutExcel()  {

      LVAR_DocInfo=new Array;

          var LSTR_fileName="E:/excel匯入界面/Excel導出到表格.xls";

    objCon = new ActiveXObject("ADODB.Connection");

    objCon.Provider = "Microsoft.Jet.OLEDB.4.0";

    objCon.ConnectionString = "Data Source=" + LSTR_fileName + ";Extended Properties=Excel 8.0;";

    objCon.CursorLocation = 1;

    objCon.Open;

   

    var strQuery;

    var strSheetName = "Sheet1$";

    var rsExcel =  new ActiveXObject("ADODB.Recordset");

    strQuery = "SELECT * FROM [" + strSheetName + "]";

    rsExcel.ActiveConnection = objCon;

    rsExcel.Open(strQuery);

   

    var shtml ="<table border='1'>"

    shtml += "<tr>";

    shtml +="<th>編號</th>"

    shtml +="<th>姓名</th>"

    shtml +="<th>年齡</th>"

    shtml +="<th>性別</th>"

    shtml +="</tr>";

    while(!rsExcel.EOF)    {

            shtml += "<tr>";

            shtml +="<td>" + rsExcel.Fields(0).value + "</td>"

            shtml +="<td>" + rsExcel.Fields(1).value + "</td>";

            shtml +="<td>" + rsExcel.Fields(2).value + "</td>";

            shtml +="<td>" + rsExcel.Fields(3).value + "</td>";

            shtml +="</tr>";

      rsExcel.MoveNext;

    }

    shtml +="</table>"

    document.getElementById("TblExcel").innerHTML=shtml;

    // Close the connection and dispose the file

    objCon.Close;

    objCon =null;

    rsExcel = null;

}

</SCRIPT>

<TABLE cellSpacing=1 width=300 bgColor=black border=0>

  <TBODY>

  <TR bgColor=white> <TD>編號</TD><TD>姓名</TD><TD>年齡</TD><TD>性別</TD></TR>

  <TR bgColor=white><TD>0001</TD><TD>張三</TD><TD>22</TD><TD>女</TD></TR>

  <TR bgColor=white><TD>0002</TD><TD>李四</TD><TD>23</TD><TD>男</TD></TR>

  </TBODY>

</TABLE>

<INPUT type=button value=導出到excel

<input type="button" value="打開Excel">

<Input type=button value=把excel導入到表格

<div >

</div></DIV></BODY></HTML>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值