>백엔드 개발 >파이썬 튜토리얼 >Python 및 xlwt를 사용하여 Excel 파일에 중국어 쓰기

Python 및 xlwt를 사용하여 Excel 파일에 중국어 쓰기

不言
不言원래의
2018-04-21 14:43:163072검색

다음은 Python과 xlwt를 사용하여 Excel 파일에 중국어를 쓰는 예제입니다. 좋은 참고값이 있어 모든 분들께 도움이 되길 바랍니다. 같이 구경가세요

파이썬이나 다른 도구들은 정말 좋은 도구이지만, 가끔은 기본 파이썬이든 파이썬 소프트웨어 패키지이든 중국어와 별로 친하지 않다는 생각이 들 때가 있습니다. 가끔 문제가 발생하는 것은 정상입니다. 방금 Excel 파일을 작성할 때 이러한 문제가 다시 발생했습니다.

상황을 설명하기 위해 현재 폴더의 모든 파일 이름을 Excel 파일에 쓰고 싶다고 가정해 보겠습니다.

현재 디렉터리 정보는 다음과 같습니다.

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/01_docs/02_blog/2017年/08月$ ls -l
total 1464
-rwxrwxrwx 1 rootroot 13067 Aug 20 18:58 as86汇编程序的编译与链接.docx
-rwxrwxrwx 1 rootroot 13794 Aug 8 22:07 C语言中access函数的使用.docx
-rwxrwxrwx 1 rootroot 13285 Aug 8 23:08 C语言中合并字符串.docx
-rwxrwxrwx 1 rootroot 15514 Aug 8 23:28 C语言中的动态内存分配.docx
-rwxrwxrwx 1 rootroot 13765 Aug 8 23:43 GNU glibc中对C语言标准库中动态内存管理的改进.docx
-rwxrwxrwx 1 rootroot 14450 Aug 8 22:37 GNU glibc库中函数执行成功与失败的返回值.docx
-rwxrwxrwx 1 rootroot 13485 Aug 20 14:51 Linux 0.12的任务调度猜测.docx
-rwxrwxrwx 1 rootroot 11934 Aug 20 13:20 Linux BIOS启动.docx
-rwxrwxrwx 1 rootroot 13349 Aug 20 19:38 Linux中dd命令的使用.docx
-rwxrwxrwx 1 rootroot 13802 Aug 20 19:20 Linux中使用dd命令修改as86汇编编译链接后的程序.docx
-rwxrwxrwx 1 rootroot 15118 Aug 20 16:47 Linux启动代码boot.s理解.docx
-rwxrwxrwx 1 rootroot 16005 Aug 20 14:25 Linux操作系统的BIOS启动流程.docx
-rwxrwxrwx 1 rootroot 14755 Aug 20 01:29 Linux的proc文件系统.docx
-rwxrwxrwx 1 rootroot 12777 Aug 1 23:50 mot文件的单行校验与全局校验.docx
-rwxrwxrwx 1 rootroot 131404 Aug 13 14:50 Office 2016 Excel实现下拉栏.docx
-rwxrwxrwx 1 rootroot 86665 Aug 19 11:44 Office 2016中修改正文默认字体.docx
-rwxrwxrwx 1 rootroot 113476 Aug 9 21:07 PPT中修改已插入对象的图标.docx
-rwxrwxrwx 1 rootroot 13636 Aug 16 22:23 Python2与Python3中__bool__方法的差异.docx
-rwxrwxrwx 1 rootroot 13924 Aug 1 23:32 Python2与Python3中除法功能的异同.docx
-rwxrwxrwx 1 rootroot 14551 Aug 16 23:09 Python2与Python3在不同类的对象比较上的差异.docx
-rwxrwxrwx 1 rootroot 14101 Aug 12 10:30 Python abc模块的几个小知识点.docx
-rwxrwxrwx 1 rootroot 13581 Aug 9 23:24 Python OOP容器设计时合理引入列表方法.docx
-rwxrwxrwx 1 rootroot 12890 Aug 12 14:29 Python中isinstance用法.docx
-rwxrwxrwx 1 rootroot 13899 Aug 9 22:46 Python中list的extend方法.docx
-rwxrwxrwx 1 rootroot 13142 Aug 18 02:22 Python中__new__方法的使用.docx
-rwxrwxrwx 1 rootroot 13280 Aug 20 23:17 Python中使用property实现类的特性.docx
-rwxrwxrwx 1 rootroot 13257 Aug 16 22:39 Python中定制类的比较运算方法.docx
-rwxrwxrwx 1 rootroot 13897 Aug 18 22:45 Python中最基础类的属性和信息.docx
-rwxrwxrwx 1 rootroot 13567 Aug 19 11:53 Python中的@classmethod用法.docx
-rwxrwxrwx 1 rootroot 14859 Aug 12 15:32 Python中的join函数用法.docx
-rwxrwxrwx 1 rootroot 13832 Aug 18 01:38 Python中的weakref简单小结.docx
-rwxrwxrwx 1 rootroot 13314 Aug 16 20:51 Python中的哈希常识小结.docx
-rwxrwxrwx 1 rootroot 13822 Aug 12 19:15 Python中的静态函数用法.docx
-rwxrwxrwx 1 rootroot 15223 Aug 11 00:12 Python中@符号的用法-1.docx
-rwxrwxrwx 1 rootroot 162 Aug 21 23:20 ~$Python和xlwt向Excel文件中写入中文.docx
-rwxrwxrwx 1 rootroot 13519 Aug 10 20:01 Python实现接受任意个数参数的函数.docx
-rwxrwxrwx 1 rootroot 15114 Aug 19 20:31 Python实现更相减损术求解最大公约数.docx
-rwxrwxrwx 1 rootroot 13425 Aug 10 22:51 Python编程中NotImplementedError的使用.docx
-rwxrwxrwx 1 rootroot 13345 Aug 20 22:27 Python通过属性手段实现只允许调用一次的方法.docx
-rwxrwxrwx 1 rootroot 13586 Aug 19 11:15 Python面向对象编程中属性的基本操作.docx
-rwxrwxrwx 1 rootroot 139264 Aug 2 23:50 Simulink解析带有系数和偏移量的CAN报文信息.docx
-rwxrwxrwx 1 rootroot 13542 Aug 19 17:22 TAOCP中1.1习题1解答与思考.docx
-rwxrwxrwx 1 rootroot 13683 Aug 19 16:05 TAOCP中最大公约数算法理解.docx
-rwxrwxrwx 1 rootroot 13539 Aug 20 18:41 Ubuntu上安装as86汇编器.docx
-rwxrwxrwx 1 rootroot 203890 Aug 12 14:20 Windows10安装bash.docx
-rwxrwxrwx 1 rootroot 258 Aug 21 23:19 xlwt_demo.py
-rwxrwxrwx 1 rootroot 13353 Aug 18 02:07 使用__del__方法在Python文件处理时保证文件关闭.docx
-rwxrwxrwx 1 rootroot 127142 Aug 7 21:07 使用PolySpace进行模型的检测.docx
-rwxrwxrwx 1 rootroot 12430 Aug 21 23:22 使用Python和xlwt向Excel文件中写入中文.docx
-rwxrwxrwx 1 rootroot 13303 Aug 19 19:06 辗转相除法求最大公约数.docx

그 중 xlwt_demo.py는 미리 작성된 Python 스크립트이며, 코드는 다음과 같습니다.

#!/usr/bin/python
# -*- coding-cp936-*-
 
import os
import xlwt
from xlwt importWorkbook
 
book = Workbook()
sheet1 =book.add_sheet('list')
row_num = 0
for f inos.listdir('.'):
  sheet1.write(row_num,0,f)
  row_num += 1
book.save('demo.xls')

프로그램 실행 결과:

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/01_docs/02_blog/2017年/08月$ python xlwt_demo.py
Traceback (mostrecent call last):
 File "xlwt_demo.py", line 14, in<module>
 book.save(&#39;demo.xls&#39;)
 File"/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 710,in save
 doc.save(filename_or_stream,self.get_biff_data())
 File"/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 674,in get_biff_data
 shared_str_table = self.__sst_rec()
 File"/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 636,in __sst_rec
 return self.__sst.get_biff_record()
 File"/usr/local/lib/python2.7/dist-packages/xlwt/BIFFRecords.py", line77, in get_biff_record
 self._add_to_sst(s)
 File"/usr/local/lib/python2.7/dist-packages/xlwt/BIFFRecords.py", line92, in _add_to_sst
 u_str = upack2(s, self.encoding)
 File"/usr/local/lib/python2.7/dist-packages/xlwt/UnicodeUtils.py", line50, in upack2
 us = unicode(s, encoding)
UnicodeDecodeError:&#39;ascii&#39; codec can&#39;t decode byte 0xe6 in position 4: ordinal not in range(128)

위 프롬프트에서 볼 수 있듯이 이 도구는 기본적으로 ASCII 코드를 지원합니다. 코드 시작 부분에 인코딩 형식을 지정했는데도 여전히 문제가 발생했습니다. 그렇다면 xlwt에 대한 특수한 사용법이 있어야 합니다. 문서 검토 결과 수정된 코드는 다음과 같습니다.

#!/usr/bin/python
# -*- coding:cp936 -*-
 
import os
import xlwt
from xlwt importWorkbook
 
book =Workbook(encoding=&#39;utf-8&#39;)
sheet1 =book.add_sheet(&#39;list&#39;)
row_num = 0
for f inos.listdir(&#39;.&#39;):
  sheet1.write(row_num,0,f)
  row_num += 1
book.save(&#39;demo.xls&#39;)

프로그램 실행 결과는 다음과 같습니다.

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/01_docs/ 02_blog/2017/08 $ python xlwt_demo.py

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/01_docs/02_blog/2017/08$ ls

as86 assembler.docx 컴파일 및 링크 속성을 이용한 클래스 특성 구현 in Python .docx

C 언어의 접근 함수 사용법.docx Python.docx의 맞춤 클래스 비교 연산 방법

C 언어의 문자열 결합.docx Python.docx

C의 가장 기본적인 클래스 속성 및 정보 언어 동적 메모리 할당.docx Python.docx

demo.xls의 @classmethod 사용 Python.docx

의 조인 함수 사용 GNU glibc.docx의 C 언어 표준 라이브러리의 동적 메모리 관리 개선 Python의 Weakref에 대한 간략한 요약 .docx

GNU glibc 라이브러리의 성공 및 실패 함수 실행의 반환 값.docx Python.docx의 해싱에 대한 상식 요약

Linux 0.12.docx의 작업 스케줄링에 대한 추측.docx의 정적 함수 사용법

Linux BIOS 시작 .docx Python-1.docx에서 @ 기호 사용

Linux.docx에서 dd 명령 사용 ~$Python 및 xlwt는 중국어를 Excel 파일에 씁니다.docx

Linux에서 dd 명령을 사용하여 컴파일된 as86 어셈블리를 수정하고 연결된 프로그램.docx Python은 여러 매개변수를 허용하는 함수를 구현합니다.docx

Linux 시작 코드 boot.s Understanding.docx Python은 Linux 운영 체제의 가장 일반적인 divisor.docx

BIOS 시작 프로세스를 해결하기 위해 위상 빼기 기술을 구현합니다. .docx Python 프로그래밍 NotImplementedError.docx

Linux proc 파일 system.docx의 사용 Python은 속성을 사용하여 한 번만 호출할 수 있는 메서드를 구현합니다.docx

mot 파일의 한 줄 확인 및 전역 확인.docx 기본 Python 객체 지향 프로그래밍의 속성 Operation.docx

Office 2016 Excel은 드롭다운 막대를 구현합니다.docx Simulink는 계수 및 오프셋을 사용하여 CAN 메시지 정보를 구문 분석합니다.docx

Office 2016 text.docx의 기본 글꼴 수정 답변 및 생각 on 1.1 TAOCP.docx의 연습 1

PPT.docx에 삽입된 객체의 아이콘 수정 TAOCP.docx의 최대 공약수 알고리즘 이해

Python2와 Python3.docx의 __bool__ 메소드의 차이점 우분투에 as86 어셈블러 설치 .docx

Python2와 Python3의 구분 function.docx의 유사점과 차이점 Windows 10 설치 bash.docx

다양한 유형의 객체를 비교할 때 Python2와 Python3의 차이점.docx 처리 중에 파일이 닫혀 있는지 확인하세요.docx

소개 Python OOP 컨테이너를 설계할 때 올바른 목록 방법.docx 모델 감지를 위해 PolySpace를 사용합니다.docx

Python.docx에서 isinstance 사용 Python 및 xlwt를 사용하여 Excel 파일에 중국어를 씁니다.docx

Python에서 목록의 확장 방법입니다. docx 가장 공통적인 divisor.docx를 찾기 위한 유클리드 나눗셈 방법 divisor.docx

Python.docx

Excel 파일에서 __new__ 메서드 사용 . Windows에서는 cp936 인코딩을 성공적으로 작성할 수 있지만 Linux에서는 utf-8만 사용할 수 있다는 점에 주목할 필요가 있습니다. 이것은 매우 흥미로운 현상인데 아직까지 그 현상을 파악하지 못했습니다. 관련 권장 사항:

Python 환경에서 Excel을 작동하는 방법


위 내용은 Python 및 xlwt를 사용하여 Excel 파일에 중국어 쓰기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.