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

EXCEL 파일_javascript 기술을 읽을 수 있는 js 코드

PHP中文网
PHP中文网원래의
2016-05-16 18:47:391345검색

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文件 

3f1c4e4b6b16bbbd69b2ee476dc4f83a
function readThis(){
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;i8a850a13a7d4f6304fd432c6bbfe3440
100db36a723c770d327fc0aef2ce13b1
385593bf7209582d73c2d3d650334bb8
a7e1e84ae9ae90c7575fa0f1aa364ee80c6dc11e160d3b678d68754cc175188a
17753354e4c2f2d0ae75f3fe89c62dc240587128eee8df8f03d0b607fe983014
73a6ac4ed44ffec12cee46588e518a5e


三、
我在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 21912cbd467a7c4460603aead679be18
6a74014ee44f5deb5894267f99b68016
08eb756f81b28a01d33212cce3fbe742 ;/TITLE>
662ac72aed5b9336e652bfbc791d1873
fa9235ab1b160f791d330988dbb6a2e6");
for (i = 1; i 9cb79e33020c8c3e0ed27f0219987550");
for (j = 1; j 값 = oSheet.Cells(i, j).Value
if (값 == 정의되지 않음){
값 = " ";
}
document.write(i == 1 ? "01fcce516eaf47ba43e695a66ebf8ce1a4b561c25d9afb9ac8dc4d70affff419" : "b6c5a531a458a2e790c1fd6421739d1c")
document.write(value );
document.write(i == 1 ? "0d36329ec37a2cc24d42c7229b69747a01c3ce868d2b3d9bce8da5c1b7e41e5b" : "b90dd5946f0946207856a8a37f441edf")
}
document.write("5194ba175fd9c71e9a9f6e68244d73a8");
}
document.write("f16b1740fad44fb09bfe928bcc527e08");
oSheet = null;
}
//-->
< ;/SCRIPT>
34934661d7147ca926b095899343bad0
dba39307b985180c8e6db1f7ba0ea126
f2475bc0d02a524246eacdb398ec424e


JS를 활용한 엑셀 읽기 예시

237b3aea72271c2cf16bb96dc1eb1bbb"버전 단위 범주 개요 프로그램 설명 개요 설명 파일명 저장 기간 공통 분류 번호" THEN
RESPONSE.WRITE "ba506bbeca4521b7c9bda6832be34aa7alert ('EXCEL 파일 필드 순서가 잘못되었거나 필드 개수가 잘못되었습니다!!')db271416853c42fd247a57c1a2c29eb6"
exit 함수
END IF
''Excel에서 데이터 읽기
do while Not rs.EOF
''는 i=0에서 rs.Fields.Count-1
EDITION=rs(0)
FILE_CODE=rs(2에 대해
검색된 데이터를 oracle 데이터베이스에 INSERT합니다. ) rs(3) rs(4) rs( 5)
FILE_NAME=rs(9)
KIND1_DESC=rs(6)
KIND2_DESC=rs(7)
KIND3_DESC=rs(8)
KIND4_DESC=rs(9)
SAVE_YEAR=rs(10)
FILE_UNIT=rs(1)
COM_FILE_CODE=rs(11)
''========== ============ ========================
CHECED_SQL="nvl(FILE_CASE,'' 선택) ) FILE_CASE FROM ODM67 where EDITION='"&TRIM(EDITION )&"' and FILE_CODE='"&TRIM(FILE_CODE)&"' "
MobjDB.OpenSQL(CHECED_SQL)이면
mobjDB.IsEmpty이면
FILE_CASE="0001"
CASE_DESC=" 일반 사례"
INS_SQL=""
INS_SQL=INS_SQL & " INSERT INTO ODM67(" & VBCRLF
INS_SQL=INS_SQL & " EDITION,FILE_CODE,FILE_CASE ," & VBCRLF
INS_SQL=INS_SQL & " CASE_DESC,CRT_USER,CRT_DATE," & VBCRLF
INS_SQL=INS_SQL & " CRT_TIME,MDF_USER,MDF_DATE,MDF_TIME)" & VBCRLF
INS_SQL=INS_SQL & " VALUES( " & VBCRLF
INS_SQL=INS_SQL & " ' "&TRIM(EDITION)&"','"&TRIM(FILE_CODE)&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(FILE_CASE)&" ','"&TRIM(CASE_DESC)&"', " & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(SESSION("USER_ID"))&"','"&TRIM(TODAY)&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM (NOWTIME)&"','"&TRIM(SESSION("USER_ID"))&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(TODAY )&"','"&TRIM(NOWTIME)& "')"
CALL mobjDB.ExecSQL(INS_SQL)
End If
End If
''========= ============= =========================
INS_SQL=""
INS_SQL= INS_SQL & " INSERT INTO ODM61( " & VBCRLF
INS_SQL=INS_SQL & " EDITION,FILE_CODE,FILE_NAME,KIND1_DESC," & VBCRLF
INS_SQL=INS_SQL & " KIND2_DESC,KIND3_DESC,KIND4_DESC,SAVE_YEAR," & VBCRLF
INS_SQL=INS_SQL & " FILE_UNIT,COM_FILE_CODE,CRT_USER, CRT_DATE ," & VBCRLF
INS_SQL=INS_SQL & " CRT_TIME,MDF_USER,MDF_DATE,MDF_TIME)" & VBCRLF
INS_SQL=INS_SQL & " VALUES(" & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(EDITION) &"','"&TRIM(FILE_CODE)&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(FILE_NAME)&"','" &TRIM(KIND1_DESC)&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(KIND2_DESC)&"','"&TRIM(KIND3_DESC)&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(KIND4_DESC)&"','"&TRIM(SAVE_YEAR)&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(FILE_UNIT)&"','"&TRIM(COM_FILE_CODE)&"' ," & VBCRLF
INS_SQL=INS_SQL & " ' "&TRIM(SESSION("USER_ID"))&"','"&TRIM(TODAY)&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(NOWTIME)&"','"&TRIM(SESSION("USER_ID"))&"'," & VBCRLF
INS_SQL=INS_SQL & " '"&TRIM(TODAY)&"' ,'"&TRIM(NOWTIME)&"')"
''RESPONSE.WRITE INS_SQL& "82c2f54f4cf245029ffb326befd49b3f"
IF mobjDB.ExecSQL(INS_SQL) THEN
InCount=InCount 1
ELSE
NoCount=NoCount 1
file=file&TODAY&" "&NOWTIME&" "&EDITION&" "&FILE_CODE & VBCRLF
END IF
exit for
next
rs.MoveNext
Loop
rs.close
set rs=nothing
Conn.close
set StrConn=nothing
if filea8093152e673feb7aba1828c43532094"" then
CALL CreateFolder()
SetFile(file) 호출
strpath=server.mappath("EXCEL_DATA.xls")
DeleteFolder(strpath) 호출
file=""
end if
함수 종료
'******* ************************************************** *
' 목적: 지정된 새 파일을 생성합니다. 존재하는 경우 새 파일을 생성하지 않고 파일에 레코드를 추가합니다.
' 전달: 파일: 추가할 데이터
' 반환:
'**** ******************************************** ******* ***
함수 SetFile(file)
file_path="C:LOGOD60err.log"
set fstemp=server.CreateObject("Scripting.FileSystemObject")
IF (fstemp.FileExists(file_path) ) THEN
ELSE
set filetemp=fstemp.CreateTextFile(file_path,true)
filetemp.writeLine "실패한 가져오기 데이터 기록"
filetemp.close
END IF
''실패 정보 OpenTextFile 추가
set filetemp=fstemp.OpenTextFile(file_path,8,true)
filetemp.writeLine 파일
filetemp.close
set filetemp=Nothing
set fstemp =없음
함수 종료
'******************************************** ********* *************
' 목적: 지정된 새 폴더를 생성합니다. 폴더가 있으면 생성하지 마세요.
' 전달:
' 복귀:
'** *************************************** ************ *****
함수 CreateFolder()
Dim fso, f
folder="c:LOG"
Set fso = CreateObject(" Scripting.FileSystemObject")
IF fso.FolderExists(폴더) THEN
ELSE
Set f = fso.CreateFolder(folder)
CreateFolderDemo = f.Path
END IF
끝 기능
'******** ************************************** ***********
' 목적 : 업로드된 파일 삭제,
' 전달 : 업로드된 파일의 가상 경로 전달
' 반환 :
'** **************** ********************************** *******
함수 DeleteFolder(filepath)
Dim fso, f
folder="EXCEL_DATA.xls"
Set fso = CreateObject("Scripting.FileSystemObject")
' 'response.write fso.FileExists(filepath)
IF fso.FileExists(filepath) THEN
fso.DeleteFile filepath
END IF
End Function
%>


코드 복사

코드는 다음과 같습니다.

3f1c4e4b6b16bbbd69b2ee476dc4f83a

function readThis(){
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()=="정의되지 않음"?"": 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){
//alert(e)
document.all.txtArea.value = tempStr; 🎜>}
document.all.txtArea.value = tempStr;
oXL.Quit()
CollectGarbage()
}
100db36a723c770d327fc0aef2ce13b1 ;
207aba4856d62bc13b9723fe93a91967
76ae401ed62021b6f2ea0291644a30ef 40587128eee8df8f03d0b607fe983014
73a6ac4ed44ffec12cee46588e518a5e

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.