Pythonの戦闘は:使用してExcelファイルを書き込むxlwt

まず、基本的な概念

ワークブック、シート、セル:Excelで主に3つの概念に関連します。前記Excelシートワークブックであり、シートワークシートは、ページテーブルであり、セルは、単純なグリッドです。ワークブックを開くと、シート、作業セルを配置する次のように3つのステップを通常読んで、実質的にExcelを書きます。読むと以下の点を書くにはパイソンのいくつかの共通のアプローチを導入しました。

第二に、書き込みエクセル

ここでは、Excelで書かれたPythonのプロセスを実証するケーススタディを使用しています。シミュレートされた学生の情報、学生情報をExcelファイルに書き込まれます。
ここに画像を挿入説明

  1. インポートライブラリxlwt
import xlwt

ない場合は、ライブラリxlwtピップは、ライブラリをインポート使用することができます。

pip install xlwt
  1. ワークブックの取得、設定エンコーディングセットは「UTF-8」であります
work_book = xlwt.Workbook(encoding="UTF-8")
  1. ワークブック内のシートを生成します
worksheet = work_book.add_sheet(sheet_name)
  1. レコードがセルに書き込まれます
# row 代表行,col代表列,data代表要填写的内容
worksheet.write(row, col, data)
  1. ワークブックの保存にファイルを保存します
work_book.save(self.filename)

第三には、スタイルを設定します

しかし、実際の場面では、はるかに多くのExcelデータの生成は簡単なので、書かれているよりも、時には美しい達成するためには、複雑な表スタイルを必要とします。例えば:

  • 設定したフォント、フォントサイズ、フォントの色、テキストの配置、太字、斜体など
  • マージされたセルが連結され、組み合わされ、列領域のマージと
  • 背景色を設定
  • ボーダーのプロパティを設定します。
  • 提供線幅

一つ一つが、この表のスタイルを設定する方法を示すために、私たちにしてみましょう

  1. フォントを設定します。
style = xlwt.XFStyle()  # 初始化样式
font = xlwt.Font()  # 为样式创建字体
font.name = "黑体"  # 设置字体为“黑体”,默认是“Arial”
font.height = 100   # 设置字体大小为100,默认是200
font.bold = True    # 字体是否加粗
font.underline = True # 下划线
font.italic = True    # 斜体字
style.font = font     # 设置样式
worksheet.write(row, col, data, style)  # 写入数据是带上样式
  1. マージされたセルが連結され、組み合わされ、列領域のマージと
# 合并从(0,0)单元格到(0,2)单元格,及合并第一行的3个单元格
worksheet.write_merge(0, 0, 0, 2, "hello world")
# 行合并,并带有其他样式
worksheet.write_merge(0, 0, 0, 2, "hello world",style)
# 合并从(0,0)单元格到(2,0)单元格,及合并第一列的3个单元格
worksheet.write_merge(0, 0, 2, 0, "hello world")
# 合并从(0,0)单元格到(2,2)单元格,及合并第一行的3*3共9个单元格区域
worksheet.write_merge(0, 0, 2, 2, "hello world")
  1. 背景色を設定
pattern = xlwt.Pattern()  # 一个实例化的样式类
pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 固定的样式
pattern.pattern_fore_colour = xlwt.Style.colour_map['yellow']  # 背景颜色
style.pattern = pattern
worksheet.write(row, col, data, style)  # 写入数据是带上样式
  1. ボーダーのプロパティを設定します。
borders = xlwt.Borders()  # 为样式创建边框,默认没有边框
borders.left = 1    # 设置左边框宽度为1
borders.right = 1
borders.top = 1
borders.bottom = 1
style.borders = borders
worksheet.write(row, col, data, style)  # 写入数据是带上样式
  1. 提供線幅
# 设置列的宽度
worksheet.col(i).width = 150 * 30

第四に、実際の

ここでは、実際のケースを示しxlwtライブラリ書き込まれた情報は以下のフォームを使用します。
ここに画像を挿入説明

完全なコードは示しています。

# -*- coding: utf-8 -*-

# 写excel
import xlwt


class WriteExcel:

    # 初始化
    def __init__(self, filename, sheet_name):
        self.work_book = xlwt.Workbook(encoding="UTF-8")
        self.worksheet = self.work_book.add_sheet(sheet_name)
        self.filename = filename
        self.row = 0

    # 保存Excel
    def save(self):
        self.work_book.save(self.filename)

    # 设置样式
    def set_style(self, name, height, bold=False, format_str='', align='center'):
        style = xlwt.XFStyle()  # 初始化样式
        font = xlwt.Font()  # 为样式创建字体
        font.name = name  # 字体
        font.bold = bold
        font.height = height

        borders = xlwt.Borders()  # 为样式创建边框
        borders.left = 1
        borders.right = 1
        borders.top = 1
        borders.bottom = 1

        alignment = xlwt.Alignment()  # 设置排列
        if align == 'center':
            alignment.horz = xlwt.Alignment.HORZ_CENTER
            alignment.vert = xlwt.Alignment.VERT_CENTER
        elif align == 'left':
            alignment.horz = xlwt.Alignment.HORZ_LEFT
            alignment.vert = xlwt.Alignment.VERT_BOTTOM
        else:
            alignment.horz = xlwt.Alignment.HORZ_RIGHT
            alignment.vert = xlwt.Alignment.VERT_BOTTOM

        style.font = font
        style.borders = borders
        style.num_format_str = format_str
        style.alignment = alignment
        return style

    # 设置标题的格式
    def set_title_style(self):
        return self.set_style('黑体', 300, bold=True, format_str='')

    # 设置表头的格式
    def set_head_style(self):
        head_style = self.set_style('Times New Roman', 220, bold=True, format_str='')
        pattern = xlwt.Pattern()  # 一个实例化的样式类
        pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 固定的样式
        pattern.pattern_fore_colour = xlwt.Style.colour_map['yellow']  # 背景颜色
        head_style.pattern = pattern
        return head_style

    # 设置明细行的格式
    def set_default_style(self):
        return self.set_style('Times New Roman', 200, bold=False, format_str='', align='right')

    # 添加标题
    def add_title(self, title):
        self.worksheet.write_merge(0, 0, 0, 2, title, self.set_title_style())
        self.row += 1

    # 写入文件头
    def add_head(self, key, value):
        # 向单元格中写入内容
        self.worksheet.write(self.row, 0, key)
        self.worksheet.write(self.row, 1, value)
        self.row += 1

    # 写入明细
    def add_list(self, table_head, table_detail):
        self.row += 1
        for i, value in enumerate(table_head):
            self.worksheet.write(self.row, i, value, self.set_head_style())
            self.worksheet.col(i).width = 150 * 30
        for rows in table_detail:
            self.row += 1
            for i, key in enumerate(rows):
                self.worksheet.write(self.row, i, rows[key], self.set_default_style())


if __name__ == "__main__":
    list_head = ["学号", "姓名", "性别"]
    list_detail = [{"student_id": "1001", "name": "张三", "sex": "男"},
                   {"student_id": "1002", "name": "李四", "sex": "女"},
                   {"student_id": "1003", "name": "王五", "sex": "男"}]

    writeExcel = WriteExcel("writeExcel.xlsx", "学生信息")
    writeExcel.add_title("XX班级学生信息表")
    writeExcel.add_head("学院名:", "A学院")
    writeExcel.add_head("班级名:", "B系一班")
    writeExcel.add_head("人数:", "50")
    writeExcel.add_list(list_head, list_detail)
    writeExcel.save()

次のようにコードを実行します。
ここに画像を挿入説明
次のように表に読み取ります。
ここに画像を挿入説明

V.関連リンク

以下のリンクはまた、我々は、関連するコンテンツ缶の助けを願って、Pythonの他の関連コンテンツを理解することができます。ありがとうございます!
リンク1:Pythonの戦闘:PythonはExcelファイルを読み込みます

公開された19元の記事 ウォン称賛67 ビュー20000 +

おすすめ

転載: blog.csdn.net/m1090760001/article/details/103113825