찾다
웹 프론트엔드JS 튜토리얼EXCEL 파일_javascript 기술을 읽을 수 있는 js 코드

js读取 EXCEL 文件 的实现代码,比较全了大家可以自行测试了。

首页给个有中文说明的例子,下面的例子很多大家可以多测试。

<script language="javascript" type="text/javascript"><!-- 
function readExcel() { 
var excelApp; 
var excelWorkBook; 
var excelSheet; 
try{ 
excelApp = new ActiveXObject("Excel.Application"); 
excelWorkBook = excelApp.Workbooks.open("C:\\XXX.xls"); 
excelSheet = oWB.ActiveSheet; //WorkSheets("sheet1") 
excelSheet.Cells(6,2).value;//cell的值 
excelSheet.usedrange.rows.count;//使用的行数 
excelWorkBook.Worksheets.count;//得到sheet的个数 
excelSheet=null; 
excelWorkBook.close(); 
excelApp.Application.Quit(); 
excelApp=null; 
}catch(e){ 
if(excelSheet !=null || excelSheet!=undefined){ 
excelSheet =nul; 
} 
if(excelWorkBook != null || excelWorkBook!=undefined){ 
excelWorkBook.close(); 
} 
if(excelApp != null || excelApp!=undefined){ 
excelApp.Application.Quit(); 
excelApp=null; 
} 
} 
// --></script>

如果是在网页上打开EXCEL 文件,那么在关闭的时候,进程里还有EXCEL.EXE,所以必须关闭后,刷新本页面!

<script> 
function ReadExcel() 
{ 
var tempStr = ""; 
var filePath= document.all.upfile.value; 
var oXL = new ActiveXObject("Excel.application"); 
var oWB = oXL.Workbooks.open(filePath); 
oWB.worksheets(1).select(); 
var oSheet = oWB.ActiveSheet; 
try{ 
for(var i=2;i<46;i++) 
{ 
if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) 
break; 
var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; 
tempStr+=(" "+oSheet.Cells(i,2).value+ 
" "+oSheet.Cells(i,3).value+ 
" "+oSheet.Cells(i,4).value+ 
" "+oSheet.Cells(i,5).value+ 
" "+oSheet.Cells(i,6).value+"\n"); 
} 
}catch(e) 
{ 
document.all.txtArea.value = tempStr; 
} 
document.all.txtArea.value = tempStr; 
oXL.Quit(); 
CollectGarbage(); 
} 
</script> 
<html> 
<input type="file" id="upfile" /><input type="button" onclick="ReadExcel();" value="read"> 
<br> 
<textarea id="txtArea" cols=50 rows=10></textarea> 
</html>

二、
js读取excel文件 

<script> <br/>function readThis(){ <br/>var tempStr = ""; <br/>var filePath= document.all.upfile.value; <br/>var oXL = new ActiveXObject("Excel.application"); <br/>var oWB = oXL.Workbooks.open(filePath); <br/>oWB.worksheets(1).select(); <br/>var oSheet = oWB.ActiveSheet; <br/>try{ <br/>for(var i=2;i<46;i++){ <br/>if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) <br/>break; <br/>var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; <br/>tempStr+=(" "+oSheet.Cells(i,2).value+" "+oSheet.Cells(i,3).value+" "+oSheet.Cells(i,4).value+" "+oSheet.Cells(i,5).value+" "+oSheet.Cells(i,6).value+"\n"); <br/>} <br/>} <br/>catch(e){ <br/>//alert(e); <br/>document.all.txtArea.value = tempStr; <br/>} <br/>document.all.txtArea.value = tempStr; oXL.Quit(); <br/>CollectGarbage(); <br/>} <br/></script>







三、
我在vs2005平台上要实现这么一个功能,点击一个按钮一次将大量的excel文件数据导入到sqlserver2005中
我用的是ajax技术,在前台用javascript操做excel文件,循环读取所有的excel文件,每读取一行就放进一个数组里通过web服务传到后台用c#语言将一行数据插入到数据库。思路大概就是这样。
现在功能已经实现了,具体代码如下
用javascript定义一个函数,循环读取excel文件数据 

function readExcel()
{
try
{
var ExcelNum=new Array();
//重复导入之前,删除上次导入的同期数据
WebServiceExcel.deleteOldNumber();
var oXL = new ActiveXObject( "Excel.Application ");
\\r_c_num[5]的值为excel文件的名字
var path=document.all.excelpath.value+ "\\ "+r_c_num[5]
var oWB = oXL.Workbooks.open(path);
\\如果excel文件有多个sheet的话从第一个sheet循环读取
for(var x=1;x {
oWB.worksheets(x).select();
var oSheet =oWB.ActiveSheet;
\\按指定开始行和开始列读取excel文件的数据
for(var i=parseInt(r_c_num[6]);i {
for(var j=parseInt(r_c_num[8]);j {
if(typeof(oSheet.Cells(i,j).value)== "undefined ")
{
ExcelNum[j-parseInt(r_c_num[8])+6]= " ";
}
else
{
switch_letter(j);
ExcelNum[j-parseInt(r_c_num[8])+6]=oSheet.Cells(i,j).value;
}
}
//将读取的一行数据传到后台插入到数据库
WebServiceExcel.insert_From_Excel(ExcelNum);
}
}
}
}
catch(err)
{
alert( "出错了, "+err.message);
}
}


这只是前台的关键代码。
现在的问题是,如果excel文件数据太多的话,导入过程要等好长时间,性能太差了,不知道该怎么改进???如果导几千行数据就不行了,时间让我无法忍受。请高手赐教,很着急用,谢谢了!!!
一个用JavaScript结合Excel.Application读取本地excel文件并以表格呈现的简单例子 



;/TITLE> <br><script language="JavaScript"> <br/><!-- <br/>var excelFileName = "E:/project/eomstools/ShowTaskCodeWorkbook/test.xls"; oWB; <br/>function showExcel(targetpID){ <br/>//objID는 테이블 ID입니다. <br/>//ActiveX는 브라우저 보안 수준 설정에서 활성화되어야 합니다. <br/>// Excel을 시작하고 응용 프로그램 개체를 가져옵니다. 🎜> var oXL=null <br/>try{ <br/>oXL = new ActiveXObject("Excel.Application") <br/>}catch(e){ <br/>alert(e.message) <br/>return ; <br/>} <br/>if (oXL == null){ <br/>alert("Excel 파일을 생성하지 못했습니다. Microsoft Office Excel 소프트웨어가 컴퓨터에 올바르게 설치되지 않았거나 브라우저의 보안 수준 때문일 수 있습니다. 너무 높게 설정되었습니다!") ; <br/>return; <br/>} <br/>시도{ <br/>// 새 통합 문서를 받으세요. <br/>oWB = oXL.Workbooks.Open(excelFileName); <br/>for (i = 1; i < ;= oWB.Sheets.Count; i ){ <br/>if (oWB.Sheets(i).name.lastIndexOf("month") != -1){ <br/>showSheet(i ); <br/>} <br/>} <br/>} <br/>catch (e){ <br/>alert(e.message) <br/>} <br/>oWB.Close(); 통합 문서를 닫지 않으면 결과는 여전히 심각할 것입니다. <br/>oWB = null; <br/>oXL = null; <br/>} <br/>function showSheet(sheetNO){ <br/>var oSheet = oWB.Sheets(sheetNO) <br/>document.write("< table border=1>"); <br/>for (i = 1; i < oSheet.UsedRange.Rows.Count; i ){ <br/>document.write("<tr>"); <br/>for (j = 1; j < oSheet.UsedRange.Columns.Count; j ){ <br/>값 = oSheet.Cells(i, j).Value <br/>if (값 == 정의되지 않음){ <br/>값 = " "; <br/>} <br/>document.write(i == 1 ? "<th nowrap=true><b>" : "<td>") <br/>document.write(value ); <br/>document.write(i == 1 ? "" : "") <br/>} <br/>document.write("< /tr>"); <br/>} <br/>document.write(""); <br/>oSheet = null; <br/>} <br/>//--> <br/>< ;/SCRIPT> <br/> <br/><BODY onLoad="showExcel();"> <br/></script>
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
一文教会你Excel折叠表格分类汇总功能一文教会你Excel折叠表格分类汇总功能May 12, 2022 am 11:58 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于折叠表格的相关问题,就是分类汇总的功能,这样查看数据会非常的方便,下面一起来看一下,希望对大家有帮助。

实用Excel技巧分享:计算年数差、月数差、周数差实用Excel技巧分享:计算年数差、月数差、周数差Apr 22, 2022 am 09:56 AM

在之前的文章《实用Excel技巧分享:利用 数据透视表 来汇总业绩》中,我们学习了下Excel数据透视表,了解了利用数据透视表来汇总业绩的方法。而今天我们来聊聊怎么计算时间差(年数差、月数差、周数差),希望对大家有所帮助!

实例总结Excel中AGGREGATE函数的八个用法实例总结Excel中AGGREGATE函数的八个用法May 17, 2022 am 11:37 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于AGGREGATE函数的相关内容,该函数用法与SUBTOTAL函数类似,但在功能上比SUBTOTAL函数更加强大,下面一起来看一下,希望对大家有帮助。

Word与Excel联动:表格借用Word进行分栏打印!Word与Excel联动:表格借用Word进行分栏打印!May 07, 2022 am 10:28 AM

在之前的文章《实用Word技巧分享:聊聊你没用过的“行号”功能》中,我们了解了Word中你肯定没用过的"行号”功能。今天继续实用Word技巧分享,看看Excel表格怎么借用Word进行分栏打印,快来收藏使用吧!

实用Excel技巧分享:合并单元格后实现筛选功能实用Excel技巧分享:合并单元格后实现筛选功能May 11, 2022 am 10:22 AM

在之前的文章《实用Excel技巧分享:原来“定位功能”这么有用!》中,我们了解了定位功能的妙用。而今天我们聊聊合并后的单元格如何实现筛选功能,分享一种复制粘贴和方法解决这个问题,另外还会给大家分享一种合并单元格的不错的替代方式。

实例详解利用Excel制作倒计时牌实例详解利用Excel制作倒计时牌May 16, 2022 am 11:53 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于zenmm制作倒计时牌的相关内容,使用Excel中的日期函数结合按指定时间刷新的VBA代码,即可制作出倒计时牌,下面一起来看一下,希望对大家有帮助。

Excel怎么查找总和为某个值的组合Excel怎么查找总和为某个值的组合May 18, 2022 am 11:25 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于如何使用函数寻找总和为某个值的组合的问题,下面一起来看一下,希望对大家有帮助。

图文详解Excel的折线图图文详解Excel的折线图May 07, 2022 am 11:28 AM

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于折线图的相关问题,下面就根据一些示例来看一下怎么去应用,希望对大家有帮助。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.