<head>
<title> ORACLE APEX | 엑셀 파일 업로드하고, 내용 조회하기 </title>
<meta name="description" content="업무 효율성 200%로 올리기! Oracle APEX 예제와 함께 적용해보세요." />
<meta name="keywords" content="오토오피스, autooffice, 업무자동화, 구글시트, 스프레드시트, 엑셀, 통계분석, 대시보드, 스크립트, 앱스스크립트, 스타트업정산, 중소기업분석, 정산자동화, 문서변환, 명세서자동화, 데이터시각화, PowerBI, 데이터스튜디오, 데이터인사이트, BI, 비즈니스인텔리전스, 빅쿼리, BigQuery, query, 루커스튜디오, looker studio, RPA, 로봇 업무 자동화, Robotic Process Automation, ORACLE APEX, excel upload" />
<meta name="robots" content="index, follow" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Oracle APEX 노하우" />
<meta property="og:description" content="업무 효율성 200%로 올리기! Oracle APEX 예제와 함께 적용해보세요." />
<meta property="og:url" content="<https://www.autooffice.io/knowhow/apex-excel-upload>" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="<https://www.autooffice.io/knowhow/apex-excel-upload>" />
<meta name="twitter:title" content="Oracle APEX 노하우" />
<meta name="twitter:description" content="업무 효율성 200%로 올리기! Oracle APEX 예제와 함께 적용해보세요." />
</head>
cleanUrl: /knowhow/apex-excel-upload

APEX를 개발해서 사용하다보면 외부에서 생성한 엑셀 파일을 업로드해야 하는 경우가 발생합니다.
보통 업무 프로세스가 단 하나의 시스템만으로 이루어지지 않기 때문이죠.
더존과 같은 회계 프로그램을 사용하면서 데이터를 연동해야 할 수도 있고, 사방넷과 같은 커머스 프로그램에서 데이터를 내려받아서 활용해야 하는 경우도 있습니다.
그럴 때, 엑셀의 내용을 복붙할 수 있다면 편하겠지만, APEX에서는 그렇게까지는 지원하지 않고 있습니다.
이 포스트에서는 엑셀 파일을 업로드하고, 업로드한 내용을 조회하는 방법까지를 다룹니다.
프로시저를 응용하면 엑셀 파일을 업로드한 다음 파싱해서 원하는 컬럼만 특정한 테이블에 INSERT 하는 것도 가능한데요, 먼저 기초를 살펴보시겠습니다.
우선 엑셀 파일을 업로드하는 테이블과 엑셀 파일의 내용을 담을 테이블을 생성합니다.
CREATE TABLE EXCEL_FILE (
SEQNO NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
FILE_NAME VARCHAR2(255) NOT NULL,
MIME_TYPE VARCHAR2(100),
CHARACTER_SET VARCHAR2(50),
FILE_CONTENT BLOB,
UPLOADED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UPLOADED_BY VARCHAR2(100)
);
엑셀 파일을 BLOB의 형태로 업로드해서 관리하는 테이블입니다.
FILE_NAME, MIME_TYPE, CHARACTER_SET, FILE_CONTENT 컬럼이 필수입니다.
CREATE TABLE EXCEL_UPLOAD (
SEQNO NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
EXCEL_SEQNO NUMBER,
COL1 VARCHAR2(4000),
COL2 VARCHAR2(4000),
COL3 VARCHAR2(4000),
COL4 VARCHAR2(4000),
COL5 VARCHAR2(4000),
COL6 VARCHAR2(4000),
COL7 VARCHAR2(4000),
COL8 VARCHAR2(4000),
COL9 VARCHAR2(4000),
COL10 VARCHAR2(4000),
COL11 VARCHAR2(4000),
COL12 VARCHAR2(4000),
COL13 VARCHAR2(4000),
COL14 VARCHAR2(4000),
COL15 VARCHAR2(4000),
COL16 VARCHAR2(4000),
COL17 VARCHAR2(4000),
COL18 VARCHAR2(4000),
COL19 VARCHAR2(4000),
COL20 VARCHAR2(4000),
CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CREATED_BY VARCHAR2(100),
UPDATED_AT TIMESTAMP,
UPDATED_BY VARCHAR2(100),
CONSTRAINT EXCEL_UPLOAD_FK
FOREIGN KEY (EXCEL_SEQNO)
REFERENCES EXCEL_FILE(SEQNO)
ON DELETE CASCADE
);