본문 바로가기
프로그램ing/ASP

[ASP] 엑셀 업로드 코드 작성시 TIP!

by 철밥통 2019. 4. 4.
반응형

[ASP] 엑셀 업로드 시 TIP

 

1. 파일명에 " . " 안들어가게 하기

sCnt = UBound(Split(FileName, "."))
If scnt > 1 then
	Err_msg = "파일명에 "".""이 있습니다. 파일명을 변경하시고 다시 업로드해주시기 바랍니다."
	Response.Write ""
End if

: 파일 업로드 시 간혹 파일명에 . 이 들어가서 확장자를 걸러낼 때 오류가 생기는 경우가 있어서

  확장자 포함 파일명 자체에 " . "이 두개 이상이라면 등록이 되지 않게 막아버렸습니다.

 

 

2. xlsx 일 경우 Sheet가 여러개일 때, 첫번째 시트명 올바르게 가져오는 방법

 

: 엑셀 안에 빈시트가 있는 경우가 있는데, 데이터가 있는 Sheet가 맨 앞에 위치하여 있다고 해도,

  정상적으로 인식되지 않는 경우가 있습니다. (xlsx인 경우에만) 따라서 Sheet에 데이터가 있는지 확인하고

  데이터가 있는 Sheet명을 가져오도록 하는 방법이 아래 코드 입니다.

 

Do Until rsList.EOF Or rsList.BOF
    SheetName = rsList(2)
    rsList.MoveNext
Loop

 

	Set DbCon2 = Server.CreateObject("ADODB.Connection")

	'EXCEL TO MS SQL
	xlsFile=CONST_AttachFileDir&"\"&defaultFilePath&"\"&NEW_FileName

	If LCase(strExt) = "xls" Then 
		   DbCon2.ConnectionString =  "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source="& xlsFile &"; Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""
	ElseIf LCase(strExt) = "xlsx" Then 
		   DbCon2.ConnectionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source="& xlsFile &";Extended Properties=""Excel 12.0 Xml;HDR=YES;"""
	End If 

	DbCon2.Open 

	'첫번째 시트명 가져오기~
	set rsList = DbCon2.OpenSchema(20)

	Do Until rsList.EOF Or rsList.BOF
	     SheetName = rsList(2)
	     rsList.MoveNext
	Loop

 

 

 

 

반응형

댓글