xlrd 모듈을 사용하여 Django 프로젝트에서 Excel 파일 가져오기
import xlrd
2. 전면에서 Excel 파일 데이터 객체 가져오기
excel_file = request.FILES.get('excel_file','')
3. Excel 파일 데이터 객체에서 자주 사용하는 Excel 파일을 읽습니다.xlsx와.xls 두 가지.xls 파일 읽기 시 formatting_ 설정 필요info=True
data = xlrd.open_workbook(filename=None, file_contents=excel_file.read()) # xlsx
data = xlrd.open_workbook(filename=None, file_contents=excel_file.read(), formatting_info=True) # xls
4. Excel에서 각 테이블(sheets)의 데이터 내용 가져오기 get_sheets_mg()# 테이블의 줄마다 데이터 가져오기
def get_sheets_mg(data, num): # data:Excel ,num
table = data.sheets()[num] #
nrows = table.nrows #
ncole = table.ncols #
all_list = []
for i in range(nrows): #
one_list = []
for j in range(ncole):
cell_value = table.row_values(i)[j]
if (cell_value is None or cell_value == ''):
cell_value = (get_merged_cells_value(table, i, j))
one_list.append(cell_value)
all_list.append(one_list)
del (all_list[0]) # Excel ,
return all_list
Excel 테이블의 한 줄의 데이터만 가져오면 실제 수요를 만족시킬 수 없습니다. Excel에서 칸을 합치는 경우가 종종 있기 때문에 칸을 합치는 상황을 처리하는 함수도 있습니다.get_merged_cells () # 모든 병합된 셀 정보 가져오기 sheet.merged_cells
def get_merged_cells(sheet):
"""
, :
[(4, 5, 2, 4), (5, 6, 2, 4), (1, 4, 3, 4)]
(4, 5, 2, 4) : 4 , 5( ) 2 , 4( ),
:param sheet:
:return:
"""
return sheet.merged_cells
get_merged_cells_value () # 병합된 셀의 정보 가져오기
def get_merged_cells_value(sheet, row_index, col_index):
"""
, ;
,
:return:
"""
merged = get_merged_cells(sheet)
# print(merged,"==hebing==")
for (rlow, rhigh, clow, chigh) in merged:
if (row_index >= rlow and row_index < rhigh):
if (col_index >= clow and col_index < chigh):
cell_value = sheet.cell_value(rlow, clow)
# print(' [%d,%d] , [%s]' % (row_index, col_index, cell_value))
return cell_value
break
return None
5. 가져온 데이터를 데이터베이스로 가져옵니다.
all_list_1 = get_sheets_mg(data, 0)
i = 0
while i < len(all_list_1):
.... #
i++
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.