`
terry0501
  • 浏览: 314634 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自己做的javascript读取word、excel、xml文件

 
阅读更多

<!--把以下的代码保存为SeeResult.html即可看到效果-->

<HTML>
 <HEAD>
  <title>GetDataFromExcelPage</title>
  <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
  <meta content="C#" name="CODE_LANGUAGE">
  <meta content="JavaScript" name="vs_defaultClientScript">
  <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
  <style type="text/css"> .myCss { background-color: #c0ddff; text-align:center; vertical-align:sub; }
  </style>
  <style type="text/css"> .myBtn { width:50px; height:20px; background-color: #d8f2fe }
  </style>
  <script language="javascript">
  var idTmr = "";
  function InertDataFromExcelToDataBase()
  {
   var vsFilePath=document.all("InputExcel").value;
   if( vsFilePath == undefined || vsFilePath == null || vsFilePath == "undefined"
    || vsFilePath == "" || vsFilePath.toUpperCase().indexOf('.XLS') == -1)
   {
    alert("please choose the excel file !");
    return false;
   }
   //创建Excel程序对象
   var vsExcel = "";
   try
   {
    vsExcel = new ActiveXObject("Excel.Application");
   }
   catch(err)
   {
    alert(err.description);
    return false;
   }
   //打开
   var vsBook = vsExcel.Workbooks.Open(vsFilePath);   
   //Excel的第一张表格
   var vsSheet = vsBook.Worksheets(1); 
   vsSheet.Select();
   //6行
   for(var i=1;i<7;i++)
   {
    //2列
    for(var j=1;j<3;j++)
    {
     //单元格取值
     alert(vsSheet.Cells(i,j).value);
    }
   }
   
   /*可以如下写法,但是Excel默认的行和列都很大的,好几万呢:)
   for(var i=1;i<vsSheet.Rows.Count;i++)
   {
    for(var j=1;j<vsSheet.Columns.Count;j++)
    {
     alert(vsSheet.Cells(i,j).value);
    }
   }
   */
   
   
   vsSheet=null;
   vsBook=null;
   //退出
   vsExcel.Quit();
   vsExcel = null;
   //GarbageCollection
   idTmr = window.setInterval("Cleanup();",1);   

   return false;
  }
  function InsertDataFromWordToDataBase()
  {
   var vsFilePath=document.all("InputWord").value;
   if( vsFilePath == undefined || vsFilePath == null
       || vsFilePath == "undefined" || vsFilePath == "" || vsFilePath.toUpperCase().indexOf('.DOC') == -1)
   {
    alert("please choose the word file !");
    return false;
   }
   //创建Word对象
   try
   {
    var vsWordApp = new ActiveXObject("Word.Application");
   }
   catch(err)
   {
    alert(err.description);
    return false;
   }
   //打开Word文档
   var wordInfo = vsWordApp.Documents.Open(vsFilePath);
   /*  其他的一些属性
    word (index)
    Range对象

    characters (index)
    Range对象

    sentences (index)
    Range对象

    paragraphs (index)
    Paragraph对象

    sections (index)
    Section对象
   */
   //不可见
   vsWordApp.Visible = false;
   //需要关闭其他word文档,防止出现读取其他文档情况
   
   /*
   //逐个字符读取整个文档
   var characters = vsWordApp.documents(1).characters
   for(var i=1;i<characters.count;i++)
   {
    alert(characters(i).text);

    //alert(vsWordApp.Application.Selection);
    //移动一个单元,宽度为1(无论是汉字还是英文字母)
    //vsWordApp.Application.Selection.MoveRight(Unit=1,Count=1);
   }
   
   //逐个字读取整个文档
   var words = vsWordApp.documents(1).words;
   for(var i=1;i<=words.count;i++)
   {
    alert(words(i).text);
   }
   */
   
   //逐个段落读取整个文档
   var paragraphs = vsWordApp.documents(1).paragraphs;
   for(var i=1;i<=paragraphs.count;i++)
   {
    alert(paragraphs(i).range.text);
   }
      
   vsWordApp = null;
   //关闭
   wordInfo.Close();
   wordInfo = null;
   //GarbageCollection
   idTmr = window.setInterval("Cleanup();",1); 
   
   return false; 
  }
  function InsertDataFromXMLToDataBase()
  {
   var vsFilePath=document.all("InputXML").value;
   if( vsFilePath == undefined || vsFilePath == null
    || vsFilePath == "undefined" || vsFilePath == "" || vsFilePath.toUpperCase().indexOf('.XML') == -1)
   {
    alert("please choose the xml file !");
    return false;
   }
   var vsXMLApp = "";
   //创建XML对象
   try
   {
    vsXMLApp = new ActiveXObject("Microsoft.XMLDOM");
   }
   catch(err)
   {
    alert(err.description);
    return false;
   }
   vsXMLApp.async = true;
   vsXMLApp.resolveExternals = false;
   //打开
   vsXMLApp.load(vsFilePath)
   //取得跟节点下面所有子节点集合
   var nodes = vsXMLApp.documentElement.childNodes;
   for( var i = 0; i < nodes.length ; i++ )
   {
    //对每个子节点取得标记集合
    var nodeInfo = nodes[i].getElementsByTagName_r("RecordsetInfo").context.attributes;
    for(var j=0;j<nodeInfo.length;j++)
    {
     //每个标记的值
     alert(nodeInfo[j].nodeValue);
    }
   }
     //vsXMLApp.Close();
    vsXMLApp = null;
    //GarbageCollection
    idTmr = window.setInterval("Cleanup();",1);
   
    return false;
  }
  function Cleanup()
  {
   window.clearInterval(idTmr);
   CollectGarbage();
  }
  </script>
 </HEAD>
 <body bgColor="gray" MS_POSITIONING="GridLayout">
  <form id="GetDataFromExcel" method="post" runat="server">
   <table style="WIDTH: 800px; HEIGHT: 10px" align="center" bgColor="green">
    <tr>
     <td align="center"><font color="red" size="5">Javascript Read Data From Office File To
       Show You</font></td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 80px" align="center">
    <tr>
     <td class="myCss" style="WIDTH: 205px" align="left"><label id="lb" title="选择文件">Please
       Choose The Excel File :</label>
     </td>
     <td class="myCss" align="right"><input id="InputExcel" type="file" name="InputExcel"><br>
      <font color="yellow" size="2">Read First Row 6 and Column 2</font>
     </td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 10px" align="center" bgColor="green">
    <tr>
     <td></td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 10px" align="center">
    <tr>
     <td align="center"><input class="myBtn" id="Import" onclick="InertDataFromExcelToDataBase()" type="button"
       value="OK">&nbsp;&nbsp; <input class="myBtn" id="QuitHere" onclick="window.close();" type="button" value="Exit">
     </td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 80px" align="center">
    <tr>
     <td class="myCss" style="WIDTH: 203px" align="center"><label id="lb2">Please Choose The
       Word File :</label>
     </td>
     <td class="myCss" align="center"><input id="InputWord" type="file">
     </td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 10px" align="center" bgColor="green">
    <tr>
     <td></td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 10px" align="center">
    <tr>
     <td align="center"><input class="myBtn" id="ImportWord" onclick="InsertDataFromWordToDataBase()" type="button"
       value="OK"> <input class="myBtn" id="QuitPage" onclick="window.close();" type="button" value="Exit">
     </td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 80px" align="center">
    <tr>
     <td class="myCss" style="WIDTH: 203px" align="center"><label id="lb3">Please Choose The
       XML File :</label>
     </td>
     <td class="myCss" align="center"><input id="InputXML" type="file">
     </td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 10px" align="center" bgColor="green">
    <tr>
     <td><FONT face="宋体"></FONT></td>
    </tr>
   </table>
   <table style="WIDTH: 800px; HEIGHT: 10px" align="center">
    <tr>
     <td align="center"><input class="myBtn" id="ImportXML" onclick="InsertDataFromXMLToDataBase()" type="button"
       value="OK"> <input class="myBtn" id="QuitHtml" onclick="window.close();" type="button" value="Exit">
     </td>
    </tr>
   </table>
  </form>
 </body>
</HTML>

 

分享到:
评论

相关推荐

    POI实现word和excel在线预览

    1. **文件解析**:通过POI库读取Word或Excel文件,将内容转换为适合在Web页面上展示的HTML格式。这涉及到解析文档的段落、表格、图片等元素,并转换成HTML标签。 2. **在线预览**:生成的HTML内容可以通过Ajax或者...

    java读取doc、docx、slx、xlsx等word和excel文件

    它支持读取和写入Word(.doc、.docx)、Excel(.xls、.xlsx)等文件。要使用Apache POI,首先需要在项目中添加相应的依赖,例如在Maven项目中加入以下依赖: ```xml &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi ...

    Java读取word文档内容并输出成网页(含图片,公式)

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。在这个场景中,我们将重点讨论如何使用Java POI读取Word文档并将其内容转换为HTML网页...

    文件在线预览及OFFICE(word,excel,ppt)的在线编辑

    "文件在线预览及OFFICE(word,excel,ppt)的在线编辑"这一主题涉及的技术点主要包括文件预览技术、OFFICE文档处理、以及集成到Web应用中的策略。以下是对这些知识点的详细说明: 1. **文件在线预览**: 文件在线预览...

    extjs的Word导出,excel读取和导出demo

    标题 "extjs的Word导出,excel读取和导出demo" 涉及到的是在Web应用程序中使用ExtJS框架进行数据导出至Word和Excel格式的技术实践。ExtJS是一个强大的JavaScript库,用于构建富客户端的Web应用,而Excel和Word导出则...

    poi-3.0.jar 用于excel word的读取与写入

    Apache POI是一个流行的Java库,专门用于处理Microsoft Office格式的文件,如Excel和Word文档。在标题中提到的"poi-3.0.jar"是这个库的一个版本,它提供了API来读取、写入和修改这些文件。在这个场景中,我们主要...

    Table表格导出为Excel、csv、txt、sql、json、xml、Word格式

    本项目提供的"Table表格导出为Excel、csv、txt、sql、json、xml、Word格式"就是这样一个功能丰富的解决方案,它允许用户将网页中的表格数据方便地转换为多种常见格式。 首先,我们来详细了解一下这些文件格式的特点...

    Asp.net mvc 在线预览、在线预览Word、Excel、PDF等

    - Open XML SDK:如果你不想依赖Office Interop,可以使用Open XML SDK来读取和操作Word和Excel文件的Open XML格式。虽然这个库不提供直接的转换为HTML的功能,但你可以编写代码解析文件内容并手动转换。 - 第三方...

    poi将word、PPT、Excel转pdf实现在线预览的jar包

    Apache POI是Java平台上用于读写Microsoft Office格式文件的开源库,包括Word(.doc/.docx)、PowerPoint(.ppt/.pptx)和Excel(.xls/.xlsx)等。 首先,Apache POI提供了API,允许开发者以编程方式操作这些文件,...

    用ado_net对word-excel进行存取

    ADO.NET是.NET Framework的一部分,它提供了一组数据访问组件,允许开发者与各种数据源进行交互,包括数据库、XML文档以及如Word和Excel这样的非结构化数据。 1. **ADO.NET概述**: ADO.NET是由微软开发的一种数据...

    SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip

    在本项目中,主要使用POI来处理Excel文件,读取数据并将其导入到数据库,或者从数据库中导出数据到Excel文件。 4. **Thymeleaf**: Thymeleaf是一个现代的服务器端Java模板引擎,可以处理HTML、XML、JavaScript、CSS...

    NET_MVC_PDF+Word+Excel+PPT文档在线预览.rar

    处理大型Excel文件时,需要注意避免一次性加载整个文件,而是逐行读取。 PPT(PowerPoint)文档的在线预览相对复杂,因为它们包含丰富的多媒体元素和动画效果。通常,这需要使用Aspose.Slides或Apache POI这样的库...

    MVC导入Word

    这些库能读取Word和Excel文件的内容,将其转换为可操作的数据。 - **数据转换**:解析后的数据需要转换为可以在Web页面上显示的格式,这可能涉及到HTML、CSS和JavaScript的使用。例如,将Word段落转换为HTML段落,...

    java 前台数据和echarts图表导出为word文件的jar

    Apache POI是Java社区中广泛采用的API,它允许程序员创建、修改和显示Microsoft Office格式的文件,包括Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)。在描述中提到的三个jar包,即stax-api-1.0.1.jar、...

    asp.net导入WORD

    这个场景通常涉及到文件上传、读取Word文档内容、转换以及数据交互等多个技术点。接下来,我们将详细讨论这些知识点。 1. **文件上传** ASP.NET提供了多种方式处理文件上传,例如使用`&lt;asp:FileUpload&gt;`控件,它...

    WPF 常见文件预览DEMO

    对于Microsoft Office文件(Word、Excel、PPT),可以利用Microsoft的COM接口或者Open XML SDK来读取文件内容。COM接口可以直接调用Office应用程序的内部功能,而Open XML SDK则提供了一种无需安装Office即可解析...

    java 解析xml 自动生成word (小程序与java交互).zip

    在本项目中,我们主要探讨的是如何通过Java技术解析XML文件并自动生成Word文档,同时结合小程序进行前后端交互。这个过程涉及到多个关键的技术点,包括Maven项目管理、MyBatis数据库操作、JSON数据交换以及Java的XML...

    JavaScript完全自学宝典 源代码

    addressbook.war JavaScript+XML实现通讯录的工程文件(可以直接在Tomcat下发布运行)。 addressbook.xml 记录通讯录的XML文件。 第14章(\c14) 示例描述:介绍JavaScript与Microsoft Office互操作的方法。 ...

    javascript网页特效实例大全(13-19)

    实例350 使用XML DOM对象读取XML文件 554 实例351 使用XMLHttpRequest对象读取XML文件 557 14.2 显示XML文档 559 实例352 使用CSS显示XML文档 559 实例353 使用XSL显示XML文档 562 实例354 使用IE XML...

    XML的简单应用和实例

    3. **文档存储**:例如,Microsoft Office的Open XML标准就是基于XML的,用于存储Word、Excel等文档。 4. **RSS/Atom订阅**:XML用于创建和解析新闻订阅的RSS(Really Simple Syndication)和Atom feed。 5. **XSLT...

Global site tag (gtag.js) - Google Analytics