2017-04-04 23 views
1

xlsxwriter 모듈을 사용하여 Excel 파일을 만들고 쓰고 있습니다. 그러나 Excel 파일을 열면 다음 팝업이 표시됩니다.파이썬 xlsxwriter 수리 된 레코드 : /xl/sharedStrings.xml 부분의 문자열 속성 (문자열)

We found a problem with some content in 'excel_sheet.xlsx'. Do you want us to try to recover as much as we can? If you trust the source of this workbook, click Yes. 예를 클릭하면 Repaired Records: String properties from /xl/sharedStrings.xml part (Strings)이 표시되고 내용을 볼 수 있습니다.

나는 이것이 write_rich_string을 사용하여 작성한 셀 때문에 발생하는 것으로 나타났습니다.

my_work_sheet.write_rich_string(row_no, col_no,format_1, "Some text in format 1", format_2, "Text in format 2", format_1, "Again in format 1")

I가 발생하지 않습니다 write_string이를 사용하여 작성하는 경우. format_1format_2에는 글꼴 이름, 색상, 크기 및 세로 정렬 세트가 있습니다.

누구나 무엇이 잘못 될지 제안 할 수 있습니까?

답변

2

(@jmcnamara에게 감사드립니다.) 문제를 해결하기 위해 노력했는데 어디로 잘못되었는지 알아낼 수있었습니다.

내 명령에서 write_rich_string으로 가끔 빈 문자열의 형식을 지정하려고했습니다.

my_work_sheet.write_rich_string(row_no, col_no,format_1, string_1, format_2, string_2, format_1, string_3)

나는 string_1, string_2string_3 중 하나의 값이 ''하게 시간의 어느 시점에서 것을 알게되었습니다. 이제 write_rich_string''이 아닌지 확인한 후에 사용해야합니다.

+1

나는 이것을 위해 XlsxWriter에서 [버그 리포트 문제] (https://github.com/jmcnamara/XlsxWriter/issues/425)를 제기했다. – jmcnamara

0

일반적으로 "일부 콘텐츠에 문제가 있음"오류/경고는 XML 요소 또는 특성이 xlsx 파일의 구성 요소 파일 중 하나에서 잘못된 형식임을 나타냅니다. 다시 말하지만 일반적으로 XlsxWriter에 버그가 있거나 사용자 입력을 어떤 방식 으로든 위생적으로 처리하지 못했음을 의미합니다.

그러나이 특별한 경우에는 문제가 무엇인지 판단하기에 충분한 정보가 없습니다. 코드 조각을 가져 와서 테스트 프로그램으로 바꿨고 예상대로 작동합니다.

import xlsxwriter 

workbook = xlsxwriter.Workbook('rich_strings.xlsx') 
my_work_sheet = workbook.add_worksheet() 

my_work_sheet.set_column('A:A', 50) 

format_1 = workbook.add_format({'color': 'red'}) 
format_2 = workbook.add_format({'color': 'blue'}) 

my_work_sheet.write_rich_string(0, 0, 
           format_1, "Some text in format 1 ", 
           format_2, "Text in format 2 ", 
           format_1, "Again in format 1") 

workbook.close() 

출력 :

example image

그래서, 당신은 위의 같은 작은자가 포함 된 프로그램을 만들고 XlsxWriter projecta bug report를 제출해야합니다.

+0

주어진 코드 스 니펫이 문제를 재현 할 수는 없지만 'write_rich_string'을 사용할 때만 오류 메시지가 나타납니다. 제안 해 주셔서 감사합니다! – Sohn

+0

그리고 나는 엑셀 오류가 존재하고 아마 XlsxWriter 버그 (필자는 저자 btw 임)를 인정하지만 재현 할 수 없다면 문제를 해결하거나 대안을 제공 할 수 없다. 따라서 문제를 재현 할 수있는 작은 프로그램으로 줄여야합니다. 그렇게하면 조사하고 고칠 수 있습니다. 그렇지 않으면이 질문에 답이 없을 것입니다. – jmcnamara