ホームページ > バックエンド開発 > Python チュートリアル > Python と xlwt を使用して中国語を Excel ファイルに書き込む

Python と xlwt を使用して中国語を Excel ファイルに書き込む

不言
リリース: 2018-04-21 14:43:16
オリジナル
3074 人が閲覧しました

以下は Python と xlwt を使用して Excel ファイルに中国語を書き込む例です。これは非常に参考になるので、皆さんのお役に立てれば幸いです。一緒に見に来てください

Python やその他のツールは確かに優れたツールですが、基本的な Python であっても Python ソフトウェア パッケージであっても、自分が中国語にあまり近づいていないように感じることがあります。時々問題が発生するのは普通のことですが、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 Assemblyler.docx のコンパイルとリンク プロパティを使用したクラス特性の実装Pythonで.docx

C言語でアクセス関数の使い方.docx Pythonでカスタマイズしたクラスの比較演算方法.docx

C言語で文字列を結合する.docx Pythonで最も基本的なクラスの属性と情報.docx

Cで言語 動的メモリ割り当て.docx Python.docx での @classmethod の使用法

demo.xls Python.docx での結合関数の使用法

GNU の C 言語標準ライブラリにおける動的メモリ管理の改善 glibc.docx Python のweakref の簡単な概要.docx

GNU glibc ライブラリの関数実行の成功と失敗の戻り値.docx Python のハッシュに関する常識のまとめ.docx

Linux 0.12 のタスク スケジューリングについての推測.docx Python での静的関数の使用法.docx

Linux BIOS の起動 .docx Python-1 での @ 記号の使用法.docx

Linux での dd コマンドの使用.docx ~$Python と xlwt は中国語を Excel ファイルに書き込みます。docx

Linux で dd コマンドを使用して、コンパイルされた as86 アセンブリを変更します。リンクされた Program.docx Python は、任意の数のパラメータを受け入れる関数を実装します。docx

Linux スタートアップ コード boot.s の理解.docx Python は、最大公約数を解決するための位相減算手法を実装します。docx

Linux オペレーティング システムの BIOS 起動プロセス.docx Python プログラミング NotImplementedError の使用.docx

Linux proc ファイル システム.docx Python は属性を使用して、一度しか呼び出すことができないメソッドを実装します。docx

mot ファイルの単一行検証とグローバル検証.docx の基本Python オブジェクト指向プログラミングにおける属性の操作.docx

Office 2016 Excel はドロップダウン バーを実装します。docx Simulink は係数とオフセットを使用して CAN メッセージ情報を解析します。docx

Office 2016 テキストの既定のフォントを変更します。docx 回答と感想1.1 について TAOCP.docx の演習 1

PPT.docx で挿入されたオブジェクトのアイコンを変更する TAOCP.docx の最大公約数アルゴリズムを理解する

Python2 と Python3.docx の __bool__ メソッドの違い Ubuntu への as86 アセンブラのインストール.docx

Python2 と Python3 の分割 関数の類似点と相違点.docx Windows 10 のインストール bash.docx

異なる種類のオブジェクトの比較における Python2 と Python3 の違い.docx 処理中にファイルが閉じられていることを確認する.docx

紹介Python OOP コンテナを設計するときに list メソッドを適切に使用する.docx モデル検出に PolySpace を使用する.docx

Python での isinstance の使用方法.docx Python と xlwt を使用して Excel ファイルに中国語を書き込む.docx

Python の list の extend メソッド。 docx 最大公約数を求めるユークリッド除算法.docx

Python での __new__ メソッドの使用法.docx

Excel ファイルが生成されました。具体的な内容は次のとおりです:

漢字は正常に書き込まれました。

エンコーディング cp936 は Windows では正常に記述できますが、Linux では utf-8 のみが使用できることに注意してください。これは非常に興味深い現象ですが、私はまだ解明できていません。

関連する推奨事項:


Python環境でExcelを操作する方法


以上がPython と xlwt を使用して中国語を Excel ファイルに書き込むの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート