Maison  >  Article  >  développement back-end  >  Écrivez du chinois dans un fichier Excel en utilisant Python et xlwt

Écrivez du chinois dans un fichier Excel en utilisant Python et xlwt

不言
不言original
2018-04-21 14:43:163029parcourir

Ce qui suit est un exemple d'utilisation de Python et xlwt pour écrire du chinois dans un fichier Excel. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Allons y jeter un oeil

Python et autres outils sont effectivement de bons outils, mais parfois qu'il s'agisse de Python basique ou de progiciels Python, j'ai l'impression de ne pas être très proche du chinois. Il est normal de rencontrer des problèmes de temps en temps. Je viens de rencontrer à nouveau un tel problème lors de l'écriture d'un fichier Excel.

Pour illustrer la situation, supposons que je veuille écrire tous les noms de fichiers du dossier actuel dans un fichier Excel.

Les informations actuelles de l'annuaire sont les suivantes :

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

Parmi eux, xlwt_demo.py est un script Python écrit à l'avance. Le code est le suivant :

#!/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')

. Le programme s'exécute Résultat :

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)

Comme vous pouvez le voir dans l'invite ci-dessus, cet outil prend en charge Code ASCII par défaut. Même si j'ai précisé le format d'encodage au début du code, j'ai quand même rencontré des problèmes. Si tel est le cas, il doit y avoir une utilisation spécialisée pour xlwt. Après vérification du document, le code modifié est le suivant :

#!/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;)

Les résultats de l'exécution du programme sont comme suit :

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

Compilation et liaison de l'assembleur as86.docx Utilisation de la propriété en Python pour implémenter l'accès aux caractéristiques de classe.docx

dans Langage C Utilisation de function.docx Méthodes de fonctionnement de comparaison des classes personnalisées en Python.docx

Fusionner les chaînes en langage C.docx Attributs et informations des classes les plus basiques en Python.docx

En C langage Allocation de mémoire dynamique.docx Utilisation de @classmethod dans Python.docx

demo.xls Utilisation de la fonction Join dans Python.docx

Améliorations de la gestion dynamique de la mémoire dans la bibliothèque standard du langage C dans GNU glibc . docx Un bref résumé de lowref dans Python.docx

La valeur de retour de l'exécution réussie et échouée d'une fonction dans la bibliothèque GNU glibc.docx Un résumé du bon sens sur le hachage dans Python.docx

Tâche planification sous Linux 0.12 Guess.docx Utilisation de la fonction statique dans Python.docx

Linux BIOS startup.docx Utilisation du symbole @ dans Python-1.docx

Utilisation de la commande dd dans Linux.docx ~ $Python et xlwt écrivent le chinois dans un fichier Excel.docx

Utilisez la commande dd sous Linux pour modifier l'assembly as86 compilé et le programme lié.docx Python implémente une fonction qui accepte n'importe quel nombre de paramètres.docx

Code de démarrage Linux boot.s Understanding.docx Python implémente la technique de réduction de phase pour résoudre le plus grand diviseur commun.docx

Processus de démarrage du BIOS du système d'exploitation Linux.docx L'utilisation de NotImplementedError dans la programmation Python.docx

Linux proc file system.docx Python utilise des attributs pour implémenter des méthodes qui ne peuvent être appelées qu'une seule fois.docx

Vérification sur une seule ligne et vérification globale des fichiers mot.docx Opérations de base des attributs dans Programmation orientée objet Python.docx

Office 2016 Excel implémente la barre déroulante.docx Simulink analyse les informations des messages CAN avec des coefficients et des décalages.docx

Modifier la police par défaut du texte dans Office 2016 .docx Réponses et réflexions sur 1.1 Exercice 1 dans TAOCP .docx

Modifier l'icône de l'objet inséré dans PPT.docx Comprendre l'algorithme du plus grand diviseur commun dans TAOCP.docx

La différence entre __bool__ méthodes en Python2 et Python3.docx Installation de l'assembly as86 sur Ubuntu Device.docx

Similarités et différences des fonctions de division dans Python2 et Python3.docx Installation de Windows10 bash.docx

Différences entre Python2 et Python3 dans comparer des objets de différentes classes.docx xlwt_demo.py

Quelques petits points de connaissances sur le module Python abc.docx Utilisez la méthode __del__ pour vous assurer que le fichier est fermé pendant le traitement du fichier Python.docx

Introduisez raisonnablement la méthode de liste lors de la conception du conteneur Python OOP.docx Utilisez PolySpace pour la modélisation Detection.docx

Utilisation d'isinstance dans Python.docx Utilisez Python et xlwt pour écrire du chinois dans des fichiers Excel.docx

Méthode d'extension de la liste dans Python.docx Trouver le plus grand diviseur commun par la méthode de division euclidienne .docx

Utilisation de la méthode __new__ dans Python.docx

Le fichier Excel a été généré, le contenu spécifique est le suivant :

Les caractères chinois ont été écrits avec succès.

Il convient de noter que le codage cp936 peut être écrit avec succès sous Windows, mais que seul utf-8 peut être utilisé sous Linux. C'est un phénomène très intéressant, et je n'ai pas encore réussi à le comprendre.

Recommandations associées :

Comment faire fonctionner Excel dans un environnement Python


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn