当前位置:   article > 正文

Python酷库之旅-比翼双飞情侣库(16)

Python酷库之旅-比翼双飞情侣库(16)

目录

一、xlwt库的由来

1、背景和需求

2、项目启动

3、功能特点

4、版本兼容性

5、与其他库的关系

6、示例和应用

7、发展历史

二、xlwt库优缺点

1、优点

1-1、简单易用

1-2、功能丰富

1-3、兼容旧版Excel

1-4、社区支持

1-5、稳定性

2、缺点

2-1、不支持`.xlsx`格式

2-2、不支持读取Excel文件

2-3、Python 3兼容性

2-4、功能限制

2-5、性能

三、xlwt库的版本说明

1、最新版本

2、Python版本兼容性

3、功能

4、限制

5、更新状态

6、安装与使用

四、如何学好xlwt库?

1、获取xlwt库的属性和方法

2、获取xlwt库的帮助信息

3、用法精讲

3-1、xlwt.Workbook.add_sheet方法

3-1-1、语法

3-1-2、参数

3-1-3、功能

3-1-4、返回值

3-1-5、说明

3-1-6、用法

3-2、xlwt.Workbook.save方法

3-2-1、语法

3-2-2、参数

3-2-3、功能

3-2-4、返回值

3-2-5、说明

3-2-6、用法 

3-3、xlwt.Worksheet.write方法

3-3-1、语法

3-3-2、参数

3-3-3、功能

3-3-4、返回值

3-3-5、说明

3-3-6、用法 

3-4、xlwt.Worksheet.flush_row_data方法

3-4-1、语法

3-4-2、参数

3-4-3、功能

3-4-4、返回值

3-4-5、说明

3-4-6、用法

3-5、xlwt.Worksheet.merge方法

3-5-1、语法

3-5-2、参数

3-5-3、功能

3-5-4、返回值

3-5-5、说明

3-5-6、用法

五、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

        在Excel中,通常所说的“情侣键”并非官方术语,而是对某些常用且经常成对出现的快捷键的一种形象化的称呼。其中,最为人熟知和广泛使用的“情侣键”是“Ctrl+C”和“Ctrl+V”。

1、Ctrl+C:这个快捷键的作用是“拷贝”或“复制”。当你在Excel中选中某个单元格、一行、一列或整个工作表的内容后,按下Ctrl+C键,这些内容就会被复制到计算机的剪贴板中,等待下一步的粘贴操作。
2、Ctrl+V:这个快捷键的作用是“粘贴”。在你按下Ctrl+C键将内容复制到剪贴板后,可以通过按下Ctrl+V键将这些内容粘贴到Excel中的另一个位置,这两个操作经常是连续进行的,因此Ctrl+C和Ctrl+V就像一对“情侣”,总是成对出现。

        除了这对常见的“情侣键”外,Excel中还有许多其他的快捷键可以帮助用户更高效地完成各种操作。然而,这些快捷键通常并没有像Ctrl+C和Ctrl+V那样形成特定的“情侣”关系。

        然而,今天我不再展开介绍“情侣键”,而是要重点推介Python中的“情侣库”,即xlrd和xlwt两个第三方库。

一、xlwt库的由来

        xlwt库的由来可以追溯到Python社区中对于Excel文件处理的需求。以下是关于xlwt库由来的清晰归纳:

1、背景和需求

1-1、在Python中处理Excel文件是一个常见的需求,无论是进行数据分析、报告生成还是其他与表格数据相关的任务。
1-2、早期,Python社区缺乏一个直接、高效且功能全面的库来创建和修改Excel文件。

2、项目启动

2-1、为了满足这一需求,python-excel组织(或相关的开发者社区)启动了xlwt项目。
2-2、xlwt作为python-excel组织的一个子项目,旨在提供一个用于在Python中创建、修改和操作.xls格式电子表格文件的库

3、功能特点

3-1、xlwt库允许用户创建新的.xls文件。
3-2、它支持将数据写入.xls文件中的特定单元格。
3-3、用户可以设置单元格样式,如字体、颜色、对齐方式等。
3-4、xlwt还支持设置行高和列宽,以及在工作表中插入图片。

4、版本兼容性

4-1、xlwt最初是为Python 2.x版本设计的,但随着Python 3.x的发布,许多库都进行了更新以适应新版本。
4-2、对于Python 3.x,开发者可能需要使用xlwt的更新版本或寻找其他兼容的库。

5、与其他库的关系

5-1、xlwt是python-excel组织维护的一系列与Excel文件处理相关库的一部分。
5-2、另一个常用的库是xlrd,它是xlwt的配套库,专门用于读取Excel文件

6、示例和应用

6-1、xlwt库通过提供简单的API和丰富的功能,使得Python开发者能够轻松地进行数据分析和报告生成。
6-2、它可以与其他数据处理库(如Pandas或Numpy)结合使用,以实现更高级的数据操作。

7、发展历史

7-1、随着Python版本的不断更新和Excel文件格式的演变,xlwt库也进行了相应的更新和改进。例如,从Python 2.x到3.x的过渡期间,xlwt库也进行了必要的更新以保持与新版本Python的兼容性。

        总之,xlwt库是Python社区为满足处理Excel文件需求而开发的一个强大工具。它通过提供丰富的功能和简单的API,使得Python开发者能够轻松地进行Excel文件的创建、修改和操作。

二、xlwt库

        xlwt库是用于在Python中创建和写入Excel文件的库,它专注于`.xls`格式的Excel文件(基于BIFF 8的Excel 97-2003工作簿)。以下是xlwt库的一些优点和缺点:

1、优点
1-1、简单易用

        xlwt提供了简洁明了的API,使得开发者可以轻松地创建和写入Excel文件。

1-2、功能丰富

        虽然专注于写入Excel文件,但xlwt仍然支持多种特性,如设置单元格样式(字体、颜色、对齐方式等)、设置行高和列宽、合并单元格等。

1-3、兼容旧版Excel

        xlwt生成的`.xls`文件与Excel 97-2003兼容,这意味着你可以在旧版本的Excel中打开这些文件。

1-4、社区支持

        作为一个流行的Python库,xlwt有广泛的社区支持和文档,可以帮助开发者快速上手并解决问题。

1-5、稳定性

        xlwt库已经存在多年,并在多个项目中经过了实践检验,因此在稳定性方面表现出色。

2、缺点
2-1、不支持`.xlsx`格式

        xlwt仅支持Excel 97-2003的`.xls`格式,而不支持较新的`.xlsx`格式(基于Office Open XML)。如果你需要处理`.xlsx`文件,你可能需要使用其他库,如openpyxl或xlsxwriter。

2-2、不支持读取Excel文件

        xlwt是一个专门的写入库,它不提供读取Excel文件的功能。如果你需要读取Excel文件,你需要使用另一个库,如xlrd(注意:xlrd在较新的版本中已经不再支持`.xlsx`文件)。

2-3、Python 3兼容性

        虽然xlwt在Python 2中非常流行,但它最初是为Python 2设计的。虽然有一些第三方维护的版本试图提供Python 3的兼容性,但官方版本可能不再支持Python 3的最新特性。

2-4、功能限制

        由于xlwt的设计初衷是创建一个轻量级的、易于使用的库,因此它可能缺少一些高级功能,如处理图表、数据透视表或宏等。

2-5、性能

        在处理大型Excel文件时,xlwt的性能可能不是最优的。对于大型数据集,可能需要考虑使用更高效的库或方法。

        综上所述,xlwt是一个强大的工具,用于在Python中创建和写入Excel 97-2003格式的`.xls`文件,然而,它也有一些限制,特别是对于那些需要处理`.xlsx`文件或需要读取Excel文件的开发者来说,在选择是否使用xlwt时,你应该根据你的具体需求进行权衡。

三、xlwt库的版本说明

        xlwt库的版本说明如下:

1、最新版本

        目前(截至2024年6月)xlwt库的最新版本为"1.3.0"。此版本主要支持Python 2.x系列以及Python 3.x的部分版本,用于创建和写入Excel 97-2003的`.xls`格式文件。

2、Python版本兼容性

        xlwt库在Python 2.6, 2.7, 3.3+等版本上得到支持。请注意,Python 2.x和Python 3.x在语法和特性上存在显著差异,因此虽然xlwt可以在这些版本上运行,但可能需要针对特定的Python版本进行微调。

3、功能

        xlwt库允许开发者在Python中创建Excel工作簿、工作表,并向单元格写入数据。它还支持设置单元格样式、合并单元格等功能。

4、限制

        xlwt库不支持Excel 2007及以后版本的`.xlsx`格式文件。如果你需要处理`.xlsx`文件,可以考虑使用其他库,如openpyxl或xlsxwriter。
        xlwt库仅提供写入Excel文件的功能,不支持读取Excel文件。如果你需要读取Excel文件,可以考虑使用xlrd库(但请注意,xlrd库在新版本中也不再支持`.xlsx`格式)。

5、更新状态

        xlwt库在一段时间内已经相对稳定,但需要注意的是,它的最后一个官方更新发布于2017年8月22日,这意味着该库可能不再接收新的功能更新或错误修复。尽管如此,由于其广泛的社区支持和稳定性,xlwt仍然是一个可靠的选择,特别是在处理旧版Excel文件时。

6、安装与使用

        你可以通过pip命令在Python环境中安装xlwt库:pip install xlwt。安装完成后,你可以通过导入xlwt模块并使用其提供的API来创建和写入Excel文件。

        总之,xlwt库是一个用于在Python中创建和写入Excel 97-2003格式文件的库,它在Python 2.x和3.x的部分版本上得到支持。虽然它不支持`.xlsx`格式文件且仅提供写入功能,但由于其稳定性和广泛的社区支持,它仍然是一个在处理旧版Excel文件时的可靠选择。

四、如何学好xlwt库?

1、获取xlwt库的属性和方法

        用print()和dir()两个函数获取xlwt库所有属性和方法的列表

  1. # ['ANTLRException', 'Alignment', 'BIFFRecords', 'Bitmap', 'Borders', 'Cell', 'Column', 'ExcelFormula',
  2. # 'ExcelFormulaLexer', 'ExcelFormulaParser', 'ExcelMagic', 'Font', 'Formatting', 'Formula', 'Pattern',
  3. # 'Protection', 'Row', 'Style', 'UnicodeUtils', 'Utils', 'Workbook', 'Worksheet', 'XFStyle', '__VERSION__',
  4. # '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__',
  5. # '__spec__', 'add_palette_colour', 'antlr', 'compat', 'easyfont', 'easyxf', 'struct']
2、获取xlwt库的帮助信息

        用help()函数获取xlwt库的帮助信息

  1. Help on package xlwt:
  2. NAME
  3. xlwt
  4. PACKAGE CONTENTS
  5. BIFFRecords
  6. Bitmap
  7. Cell
  8. Column
  9. CompoundDoc
  10. ExcelFormula
  11. ExcelFormulaLexer
  12. ExcelFormulaParser
  13. ExcelMagic
  14. Formatting
  15. Row
  16. Style
  17. UnicodeUtils
  18. Utils
  19. Workbook
  20. Worksheet
  21. antlr
  22. compat
  23. DATA
  24. __VERSION__ = '1.3.0'
  25. FILE
  26. e:\python_workspace\pythonproject\lib\site-packages\xlwt\__init__.py
3、用法精讲
3-1、xlwt.Workbook.add_sheet方法
3-1-1、语法
  1. add_sheet(self, sheetname, cell_overwrite_ok=False)
  2. This method is used to create Worksheets in a Workbook.
  3. :param sheetname:
  4. The name to use for this sheet, as it will appear in the
  5. tabs at the bottom of the Excel application.
  6. :param cell_overwrite_ok:
  7. If ``True``, cells in the added worksheet will not raise an
  8. exception if written to more than once.
  9. :return:
  10. The :class:`~xlwt.Worksheet.Worksheet` that was added.
3-1-2、参数

3-1-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-1-2-2、sheetname(必须)一个字符串,表示要添加的工作表的名称,且务必保证该名称的唯一性。

3-1-2-3、cell_overwrite_ok(可选)一个布尔值,默认为False。如果设置为True,则允许在工作表的单元格上进行覆盖写入(即,如果尝试写入一个已经包含数据的单元格,它将被新数据覆盖)。但是,请注意,这个参数实际上在xlwt中并没有太大意义,因为xlwt总是允许覆盖单元格,所以,尽管这个参数存在,但在大多数情况下,你可以忽略它或简单地将其设置为False。

3-1-3、功能

         在已存在的工作簿(workbook)中添加一个新的工作表(worksheet)。

3-1-4、返回值

        返回一个Worksheet对象,你可以通过这个对象来进一步操作新添加的工作表,如写入数据、设置样式等。

3-1-5、说明

        无

3-1-6、用法
  1. # 1、xlwt.Workbook.add_sheet方法
  2. import xlwt
  3. # 创建一个新的工作簿
  4. workbook = xlwt.Workbook(encoding="utf-8")
  5. # 添加一个名为 'Sheet1' 的工作表
  6. worksheet = workbook.add_sheet('Sheet1')
  7. # 通过返回的 Worksheet 对象向单元格写入数据
  8. worksheet.write(0, 0, 'Myelsa') # 将 'Myelsa' 写入第1行第1列的单元格
  9. # 保存工作簿
  10. workbook.save('example.xls')
3-2、xlwt.Workbook.save方法
3-2-1、语法
  1. save(self, filename_or_stream)
  2. This method is used to save the Workbook to a file in native Excel
  3. format.
  4. :param filename_or_stream:
  5. This can be a string containing a filename of
  6. the file, in which case the excel file is saved to disk using the name
  7. provided. It can also be a stream object with a write method, such as
  8. a :class:`~io.StringIO`, in which case the data for the excel
  9. file is written to the stream.
3-2-2、参数

3-2-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-2-2-2、filename_or_stream(必须)一个字符串,表示要添加的工作表的名称,且务必保证该名称的唯一性。

3-2-3、功能

        用于将Workbook对象(即你创建和编辑的Excel 文件)保存为.xls格式的Excel文件。

3-2-4、返回值

        没有返回值(或者说返回值为None),因为它主要是执行一个操作(保存文件)而不是返回一个结果。

3-2-5、说明

        无

3-2-6、用法 
  1. # 2、xlwt.Workbook.save方法
  2. import xlwt
  3. # 创建一个新的工作簿
  4. workbook = xlwt.Workbook(encoding='utf-8')
  5. # 添加一个工作表
  6. sheet = workbook.add_sheet('Sheet1')
  7. # 在工作表中写入数据
  8. sheet.write(0, 0, 'Hello')
  9. sheet.write(0, 1, 'World')
  10. # 保存工作簿为 Excel 文件
  11. workbook.save(r'E:\360Downloads\example.xls') # 这里 'example.xls' 是文件名
3-3、xlwt.Worksheet.write方法
3-3-1、语法
  1. write(self, r, c, label='', style=<xlwt.Style.XFStyle object at 0x000001675BD093D0>)
  2. This method is used to write a cell to a :class:`Worksheet`.
  3. :param r:
  4. The zero-relative number of the row in the worksheet to which
  5. the cell should be written.
  6. :param c:
  7. The zero-relative number of the column in the worksheet to which
  8. the cell should be written.
  9. :param label:
  10. The data value to be written.
  11. An :class:`int`, :class:`long`, or
  12. :class:`~decimal.Decimal` instance is converted to :class:`float`.
  13. A :class:`unicode` instance is written as is. A :class:`bytes`
  14. instance is converted to :class:`unicode` using the
  15. encoding, which defaults to ``ascii``, specified when the
  16. :class:`Workbook` instance was created.
  17. A :class:`~datetime.datetime`, :class:`~datetime.date` or
  18. :class:`~datetime.time` instance is converted into Excel date format
  19. (a float representing the number of days since (typically)
  20. ``1899-12-31T00:00:00``, under the pretence that
  21. 1900 was a leap year).
  22. A :class:`bool` instance will show up as ``TRUE`` or ``FALSE`` in
  23. Excel.
  24. ``None`` causes the cell to be blank: no data, only formatting.
  25. An :class:`xlwt.Formula` instance causes an Excel formula to be
  26. written.
  27. :param style:
  28. A style, also known as an XF (extended format), is an
  29. :class:`~xlwt.Style.XFStyle` object, which encapsulates the
  30. formatting applied to the cell and its contents.
  31. :class:`~xlwt.Style.XFStyle` objects are best set up using the
  32. :func:`~xlwt.Style.easyxf` function. They may also be set up by
  33. setting attributes in :class:`Alignment`, :class:`Borders`,
  34. :class:`Pattern`, :class:`Font` and :class:`Protection` objects then
  35. setting those objects and a format string as attributes of an
  36. :class:`~xlwt.Style.XFStyle` object.
3-3-2、参数

3-3-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-3-2-2、r(row的缩写,必须)一个整数,表示你要写入的单元格的行号(从0开始计数)。

3-3-2-3、c(column的缩写,必须)一个整数或xlwt.Column对象,表示你要写入的单元格的列号或列对象。如果你使用整数,那么它是从0开始的列索引。但请注意,xlwt库也提供了xlwt.Column类,允许你使用列名称(如xlwt.Col(0)表示A列)来引用列。然而,在实际使用中,直接使用列索引(整数)更为常见。

3-3-2-4、label(必须)一个字符串或数字,表示你要写入单元格的数据。它可以是字符串、数字(整数或浮点数)或其他可以被Excel单元格接受的数据类型。

3-3-2-5、style(可选)一个xlwt.Style对象或xlwt.XFStyle对象,表示用于指定单元格的样式。你可以使用xlwt.easyxf函数来创建一个样式对象,并指定字体、边框、填充等样式属性。如果省略此参数,则使用默认的单元格样式。

3-3-3、功能

        在Excel工作表的指定单元格中写入数据。

3-3-4、返回值

        没有明确的返回值说明。通常情况下,它执行成功后不返回任何值(或返回None),并且不会抛出异常,除非在写入过程中遇到错误(如文件IO错误、无效的参数等)。

3-3-5、说明

        无

3-3-6、用法 
  1. # 3、xlwt.Worksheet.write方法
  2. import xlwt
  3. # 创建一个新的工作簿和工作表
  4. workbook = xlwt.Workbook(encoding='utf-8')
  5. sheet = workbook.add_sheet('Sheet1')
  6. # 写入数据到单元格A1,不使用样式
  7. sheet.write(0, 0, 'Hello, World!')
  8. # 创建一个样式对象,并写入带有样式的数据到单元格B1
  9. style = xlwt.XFStyle()
  10. font = xlwt.Font()
  11. font.name = 'Arial'
  12. font.bold = True
  13. style.font = font
  14. sheet.write(0, 1, 'Bold Text', style)
  15. # 保存工作簿
  16. workbook.save('example.xls')
3-4、xlwt.Worksheet.flush_row_data方法
3-4-1、语法
flush_row_data(self)
3-4-2、参数

3-4-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-4-3、功能

        允许你将已写入但尚未保存到磁盘的行数据立即写入到文件中,从而释放内存以供后续使用。

3-4-4、返回值

        没有返回值(即返回None)。它的主要目的是执行一个操作(将数据写入文件),而不是返回一个结果。

3-4-5、说明

        该方法对于处理大量数据或实时生成报告的场景特别有用,因为它可以帮助避免内存溢出。

3-4-6、用法
  1. # 4、xlwt.Worksheet.flush_row_data方法
  2. import xlwt
  3. # 创建一个新的工作簿和工作表
  4. workbook = xlwt.Workbook(encoding='utf-8')
  5. sheet = workbook.add_sheet('Sheet1')
  6. # 假设你有一个大型数据集需要写入
  7. data = [...] # 这里是你的数据
  8. for row_idx, row_data in enumerate(data):
  9. for col_idx, cell_value in enumerate(row_data):
  10. sheet.write(row_idx, col_idx, cell_value)
  11. # 每写入一定数量的行(例如1000行),刷新一次内存
  12. if (row_idx + 1) % 1000 == 0:
  13. sheet.flush_row_data()
  14. # 最后,保存工作簿
  15. workbook.save('output.xls')
3-5、xlwt.Worksheet.merge方法
3-5-1、语法
merge(self, r1, r2, c1, c2, style=<xlwt.Style.XFStyle object at 0x0000019E0BC793D0>)
3-5-2、参数

3-5-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-5-2-2、r1(row的缩写,必须)一个整数,表示合并区域的起始行号(基于0的索引)。

3-5-2-3、r2(row的缩写,必须)一个整数,表示合并区域的结束行号(基于0的索引)。

3-5-2-3、c1(column的缩写,必须)一个整数,表示合并区域的起始列号(基于0的索引)。

3-5-2-4、c2(column的缩写,必须)一个整数,表示合并区域的结束列号(基于0的索引)。

3-5-2-5、style(可选)一个xlwt.Style对象或xlwt.XFStyle对象,表示用于指定单元格的样式。你可以使用xlwt.easyxf函数来创建一个样式对象,并指定字体、边框、填充等样式属性。如果省略此参数,则使用默认的单元格样式。

3-5-3、功能

        用于合并工作表中的单元格。

3-5-4、返回值

        本身没有返回值。它直接修改工作表对象,将指定的单元格区域合并为一个单元格。

3-5-5、说明

        合并后的单元格将保留左上角单元格的样式和格式,而其他单元格的样式和格式将被忽略。

3-5-6、用法
  1. # 5、xlwt.Worksheet.merge方法
  2. import xlwt
  3. # 创建一个新的工作簿和工作表
  4. workbook = xlwt.Workbook(encoding='utf-8')
  5. sheet = workbook.add_sheet('Sheet1')
  6. # 合并第0行的第0列到第2列
  7. sheet.merge(0, 0, 1, 2)
  8. # 写入数据到合并后的单元格(左上角)
  9. sheet.write(0, 1, 'Merged Cell')
  10. # 保存工作簿
  11. workbook.save('merged_cells.xls')

五、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/739971
推荐阅读
相关标签
  

闽ICP备14008679号