ASP와 Excel을 결합하여 데이터 테이블과 차트에 대한 코드를 생성합니다. 필요한 친구가 이를 참조할 수 있습니다. 목차
1. 환경 구성
2. Excel에서 ASP의 기본 작업
3. ASP는 Excel을 작동하여 데이터 테이블을 생성합니다.
4. ASP는 Excel을 작동하여 차트를 생성합니다.
5. 서버측 엑셀 파일 탐색, 다운로드, 삭제 솔루션
6. 부록
텍스트
1. 환경 구성
서버 측 환경 구성과 관련하여 참조 자료에 따르면 모든 Microsoft 시리즈 구성은 다음과 같이 괜찮습니다.
1. Win9x+PWS+오피스
2. Win2000 Professional+PWS+오피스
3. Win2000 서버+IIS+오피스
현재 저자가 성공적으로 테스트한 환경은 후자의 두 환경이다. Office 버전에 대한 특별한 요구 사항은 없습니다. 클라이언트 구성의 불확실성과 낮은 호환성을 고려하면 다운로드 후 클라이언트가 올바르게 표시되지 않는 것을 방지하기 위해 서버측 Office 버전이 너무 높지 않은 것이 좋습니다.
서버 측 환경 구성에 대한 두 가지 우연한 발견은 다음과 같습니다.
1. 작성자의 개발머신에는 원래 Kingsoft의 WPS2002가 탑재되어 있었는데, 항상 엑셀 개체 생성에 문제가 있었는데 WPS2002를 제거한 후 오류가 사라졌습니다.
2. 저자는 ASP 코드를 개발할 때 FrontPage를 사용하는 것을 좋아합니다. FrontPage가 열려 있으면(서버측) 개체 생성이 불안정하고 때로는 성공하기도 하고 실패하기도 합니다. 광범위한 조사 끝에 Office 시리즈 소프트웨어가 서버 측에서 실행되는 경우 Excel 개체를 성공적으로 생성하기 어렵다는 사실을 발견했습니다.
서버 측에서 설정해야 하는 또 다른 사항은 COM 구성 요소의 작업 권한입니다. 명령줄에 DCOMCNFG를 입력하여 COM 구성 요소 구성 인터페이스로 들어갑니다. Microsoft Excel을 선택하고 세 가지 옵션 모두에 대해 사용자 정의를 클릭합니다. 편집하는 동안 모든 권한을 추가합니다. 저장 후 서버를 다시 시작하세요.
클라이언트의 환경 구성에는 특별한 것이 없지만, Office와 IE만 설치되어 있다면 어떤 Universal 버전이라도 괜찮을 것 같습니다.
2. Excel에서 ASP의 기본 작업
1. 엑셀 객체 생성
set objExcelApp = CreateObject(Excel.Application)
objExcelApp.DisplayAlerts = false는 경고를 표시하지 않습니다.
objExcelApp.Application.Visible = false는 인터페이스를 표시하지 않습니다.
2. 새로운 엑셀 파일을 생성하세요
objExcelApp.WorkBooks.add
objExcelBook = objExcelApp.ActiveWorkBook 설정
objExcelSheets = objExcelBook.Worksheets 설정
set objExcelSheet = objExcelBook.Sheets(1)
3. 기존 엑셀 파일 읽기
strAddr = 서버.MapPath(.)
objExcelApp.WorkBooks.Open(strAddr & /Temlet/Table.xls)
objExcelBook = objExcelApp.ActiveWorkBook 설정
objExcelSheets = objExcelBook.Worksheets 설정
set objExcelSheet = objExcelBook.Sheets(1)
4. 엑셀 파일을 다른 이름으로 저장
objExcelBook.SaveAs strAddr & /Temp/Table.xls
5. 엑셀 파일을 저장하세요
objExcelBook.Save(작성자가 테스트 시 성공적으로 저장했지만 페이지에서 오류가 보고되었습니다.)
6. 엑셀 작업 종료
objExcelApp.Quit을 종료해야 합니다.
objExcelApp = 아무것도 설정하지 않음
3. ASP는 Excel을 작동하여 데이터 테이블을 생성합니다.
1. 범위에 데이터 삽입
objExcelSheet.Range(B3:k3).Value = 배열(67, 87, 5, 9, 7, 45, 45, 54, 54, 10)
2. 셀에 데이터 삽입
objExcelSheet.Cells(3,1).Value=인터넷 익스플로러
3. 셀 텍스트 색상 변경
objExcelSheet.Cells(3,1).Font.Color=vbred
4. 셀 주위에 선을 그립니다.
objExcelSheet.Cells(3.1).Borders(1).LineStyle =1
objExcelSheet.Cells(3.1).Borders(2).LineStyle =1
objExcelSheet.Cells(3.1).Borders(3).LineStyle =1
objExcelSheet.Cells(3.1).Borders(4).LineStyle =1
영역 중앙에 선을 그립니다.
objExcelSheet.Range(A1:G7).Borders(7).LineStyle =1
objExcelSheet.Range(A1:G7).Borders(8).LineStyle =1
8. 셀의 배경색을 설정하세요
objExcelSheet.Cells(3.1).Interior.colorindex=17
9. 셀 병합
objExcelSheet.Range(A1:G7).Merge
10. 왼쪽 및 오른쪽 정렬 설정
왼쪽 2개 가운데 3개 오른쪽 4개
objExcelSheet.Range(A1).HorizontalAlignment = 2
11. 상하 정렬 설정
2는 중앙에 위치
objExcelSheet.Range(A1)..VerticalAlignment = 2
4. ASP는 Excel을 작동하여 차트를 생성합니다.
1. 차트 차트 만들기
objExcelApp.Charts.Add
2. 차트 유형 설정
objExcelApp.ActiveChart.ChartType = 97
참고: 2차원 선 차트, 4; 2차원 원형 차트, 51;
3. 차트 제목 설정
objExcelApp.ActiveChart.HasTitle = 참
objExcelApp.ActiveChart.ChartTitle.Text = 테스트 차트
4. 테이블 데이터를 통해 그래픽 설정
objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range(A1:k5),1
5. 그래픽 데이터 직접 설정(권장)
objExcelApp.ActiveChart.SeriesCollection.NewSeries
objExcelApp.ActiveChart.SeriesCollection(1).Name = =333
objExcelApp.ActiveChart.SeriesCollection(1).Values = =
6. 차트 바인딩
objExcelApp.ActiveChart.Location 1
7. 데이터 테이블 표시
objExcelApp.ActiveChart.HasDataTable = 참
8. 범례 표시
objExcelApp.ActiveChart.DataTable.ShowLegendKey = 참
5. 서버측 엑셀 파일 탐색, 다운로드, 삭제 솔루션
Location.href=, Navigate 및 Response.Redirect를 포함하여 검색을 위한 다양한 솔루션이 있습니다. 클라이언트 방법을 사용하면 서버에 Excel 파일을 생성하는 데 더 많은 시간이 제공되므로 권장됩니다.
다운로드 구현은 좀 더 번거롭습니다. 인터넷에 있는 기성 서버에서 구성 요소를 다운로드하거나 구성 요소를 직접 사용자 정의하고 개발하는 것이 더 나은 솔루션입니다. 또 다른 방법은 클라이언트에서 엑셀 컴포넌트를 조작하는 방법인데, 클라이언트는 서버측 엑셀 파일을 조작하여 클라이언트에 저장한다. 이 방법을 사용하려면 클라이언트가 안전하지 않은 ActiveX 컨트롤의 작업 권한을 열어야 합니다. 각 고객에게 서버를 신뢰할 수 있는 사이트로 설정하라고 알리는 문제를 고려하면 문제를 피하기 위해 첫 번째 방법을 사용하는 것이 좋습니다.
삭제 계획은 세 부분으로 구성됩니다.
A: 동일한 사용자가 생성한 Excel 파일은 동일한 파일 이름을 사용합니다. 파일 이름은 문자열이 중복되지 않도록 사용자 ID 번호 또는 세션 ID 번호로 구성될 수 있습니다. 이렇게 하면 새 파일이 생성될 때 이전 파일을 자동으로 덮어씁니다.
B: Global.asa 파일에 Session_onEnd 이벤트가 실행되도록 설정되면 이 사용자의 Excel 임시 파일을 삭제하세요.
C: Global.asa 파일에 Application_onStart 이벤트가 실행되도록 설정되면 임시 디렉터리의 모든 파일을 삭제하세요.
참고: 권장 디렉터리 구조/Src 코드 디렉터리/템플릿 템플릿 디렉터리/임시 임시 저장 디렉터리
6. 부록
오류가 발생하면 Excel의 프로세스가 종료되어 두통이 발생합니다. 각 파일 앞에 On Error Resume Next를 추가하면 이 상황을 개선하는 데 도움이 됩니다. 왜냐하면 파일이 오류를 생성하는지 여부에 관계없이 Application.Quit 실행을 유지하여 각 프로그램 실행 후에 죽은 프로세스가 남아 있지 않도록 하기 때문입니다.
두 가지 추가 사항:
1. 기타 특정 Excel 작업은 매크로를 기록하여 해결할 수 있습니다.
2. 서버 측에서 SQL Enterprise Manager를 열면 문제가 발생할 수도 있습니다.
다음과 같이 코드 코드를 복사합니다.
<%
OnErrorResumeNextstrAddr=Server.MapPath(.)setobjExcelApp=CreateObject(Excel.Application)
objExcelApp.DisplayAlerts=false
objExcelApp.Application.Visible=false
objExcelApp.WorkBooks.Open(strAddr&/Templet/Null.xls)
setobjExcelBook=objExcelApp.ActiveWorkBook
setobjExcelSheets=objExcelBook.Worksheets
setobjExcelSheet=objExcelBook.Sheets(1)objExcelSheet.Range(B2:k2).Value=Array(1주차,2주차,3주차,4주차,5주차,6주차,7주차,
8주차,9주차,10주차)
objExcelSheet.Range(B3:k3).Value=Array(67,87,5,9,7,45,45,54,54,10)
objExcelSheet.Range(B4:k4).Value=Array(10,10,8,27,33,37,50,54,10,10)
objExcelSheet.Range(B5:k5).Value=Array(23,3,86,64,60,18,5,1,36,80)
objExcelSheet.Cells(3,1).Value=InternetExplorer
objExcelSheet.Cells(4,1).Value=넷스케이프
objExcelSheet.Cells(5,1).Value=OtherobjExcelSheet.Range(b2:k5).Select
objExcelApp.Charts.Add
objExcelApp.ActiveChart.ChartType=97
objExcelApp.ActiveChart.BarShape=3
objExcelApp.ActiveChart.HasTitle=True
objExcelApp.ActiveChart.ChartTitle.Text=
매주 방문자 로그는 브라우저 백분율로 표시됩니다.
objExcelApp.ActiveChart.SetSourceDataobjExcelSheet.Range(A1:k5),1
objExcelApp.ActiveChart.Location1
'objExcelApp.ActiveChart.HasDataTable=True
'objExcelApp.ActiveChart.DataTable.ShowLegendKey=TrueobjExcelBook.
SaveAsstrAddr&/Temp/Excel.xlsobjExcelApp.Quit
setobjExcelApp=아무것도 없음
%>
<!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.0전환//EN>
<HTML>
<헤드>
<TITLE>새 문서</TITLE>
<METANAME=GeneratorCONTENT=MicrosoftFrontPage5.0>
<METANAME=저자CONTENT=>
<METANAME=키워드CONTENT=>
<METANAME=설명CONTENT=>
</HEAD>
<본문>
</BODY>
</HTML>