Panda를 사용하여 *.xlsx long URL을 셀에 저장하는 방법
예를 들어 2개의 열(id 및 URL)이 있는 DataFrame에 Excel 파일을 읽습니다.입력 파일의 URL은 텍스트와 같습니다(하이퍼링크 없음).
input_f = pd.read_excel("input.xlsx")
이 데이터 프레임 내부의 내용을 확인하십시오. 모든 내용이 성공적으로 읽혔으며 모든 URL이 정상입니다.input_f
그 후 이 파일을 _excel에 저장하지 않을 때
input_f.to_excel("output.xlsx", index=False)
경고를 받았습니다.
경로\worksheet.py:836 : 사용자 경고:링크 또는 위치/앵커가 255자 이상인 URL 'http://here long URL'이 URL force_unicode(url)에 대한 Excel의 제한을 초과하므로 무시합니다.
그리고 출력.URL이 긴 xlsx 셀이 비어 있고 URL이 하이퍼링크가 됩니다.
어떻게 고칠까요?
문자열을 URL로 변환하지 않는 옵션을 사용하여 ExcelWriter 개체를 만들 수 있습니다.
writer = pandas.ExcelWriter(r'file.xlsx', engine='xlsxwriter',options={'strings_to_urls': False})
df.to_excel(writer)
writer.close()
제가 직접 해봤는데 같은 문제가 생겼습니다.임시 CSV 파일을 만든 다음 xlsxwriter를 사용하여 Excel 파일을 만들 수 있습니다.완료되면 tmp 파일을 삭제합니다.xlsxwriter에는 excel이 수행하는 자동 하이퍼링크를 재정의하는 write_string 메서드가 있습니다.이것은 저에게 효과가 있었습니다.
import pandas as pd
import csv
import os
from xlsxwriter.workbook import Workbook
inData = "C:/Users/martbar/Desktop/test.xlsx"
tmp = "C:/Users/martbar/Desktop/tmp.csv"
exFile = "C:/Users/martbar/Desktop/output.xlsx"
#read in data
df = pd.read_excel(inData)
#send to csv
df.to_csv(tmp, index=False)
#convert to excel
workbook = Workbook(exFile)
worksheet = workbook.add_worksheet()
with open(tmp, 'r') as f:
reader = csv.reader(f)
for r, row in enumerate(reader):
for c, col in enumerate(row):
#if you use write instead of write_string you will get the error
worksheet.write_string(r, c, col)
workbook.close()
#delete tmp file
os.remove(tmp)
섹션의 문서: "Passing XlsxWriter 생성자 옵션을 Pandas에 전달",'strings_to_urls': False
이제 다음과 같이 지정됩니다.
writer = pd.ExcelWriter('pandas_example.xlsx',
engine='xlsxwriter',
engine_kwargs={'options': {'strings_to_urls': False}})
그리고 다음과 같이 승인된 응답이 제안하는 것을 계속합니다.
df.to_excel(writer)
writer.close()
언급URL : https://stackoverflow.com/questions/35440528/how-to-save-in-xlsx-long-url-in-cell-using-pandas
'programing' 카테고리의 다른 글
애플리케이션을 종료하는 것이 눈살을 찌푸리게 합니까? (0) | 2023.06.03 |
---|---|
포크 대.깃허브에 분기 (0) | 2023.06.03 |
해시 키를 다른 키로 대체하려면 어떻게 해야 합니까? (0) | 2023.06.03 |
레일 매개 변수가 설명되었습니까? (0) | 2023.06.03 |
루비: kind_of? vs. instance_of?vs. is_a? (0) | 2023.06.03 |