将简单的csv文件写入word、excel、ppt,并做一定的可视化处理与统计

这篇博客展示了如何使用Python将CSV数据导入Word、Excel和PowerPoint,并提供了柱状图、饼状图和折线图的简单可视化示例。通过docx、xlwt和pptx库,实现了数据在不同格式间的转换,同时利用xlsxwriter库创建了多种图表进行数据呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚学python不久,这个小项目是学校留的作业,在这儿做一个记录吧。有的代码当时没留下来,就放截图了。

创建csv文件

在这里插入图片描述
结果:在这里插入图片描述

将csv写入word

# 将csv文件写入word

import docx
import csv
file_path = 'D:\pycharm\PycharmProjects\pythonProject\data.csv'
with open(file_path, encoding='ISO-8859-1') as file_name:   # 打开文件所在的位置
    reader =csv.reader(file_name)
    result = list(reader)            # 存入列表
    del result[0]  # 如果你的标题是中文的话,result[0]会出现乱码,原因:'ISO-8859-1'
    # str_convert = ''.join(result[0][:])
    # print(str_convert)
    a = (len(result[:][:]))
    b = (len(result[0][:]))
    doc = docx.Document()  # 创建一个空的word
    for i in range(a):
        str_convert = ''.join(result[i][:])    # 将列表的内容写入字符串
        str_num = ''.join(str_convert)         # 创建一个总的字符串
        doc.add_paragraph(str_num)             # 写入word
        print(str_num)
    doc.save('D:\pycharm\PycharmProjects\pythonProject\csv.test.doc')  # 保存word

结果:
在这里插入图片描述

将csv文件写入excel

from xlwt import *
import time
import csv

sCsvFileName='data.csv'
workbook=Workbook(encoding='utf-8')
worksheet=workbook.add_sheet('sheet1')
with open(sCsvFileName,newline='') as csvfile:
    rows=csv.reader(csvfile)
    print('========================================')
    for iRow,row in enumerate(rows):
        if iRow==1:
            iCols=len(row)
        for iCol in range(0,len(row)):
            worksheet.write(iRow,iCol,','.join(row).split(',')[iCol])
sFileName='csv.data' + '.xls'
workbook.save(sFileName)

结果:
在这里插入图片描述

将csv文件写入ppt(列表形式)

import csv
import pptx
from pptx.util import Inches

pptFile = pptx.Presentation()
slide = pptFile.slides.add_slide(pptFile.slide_layouts[4])
sCsvFileName = 'chapter5.csv'

with open(sCsvFileName, newline='') as csvfile:
    rows = csv.reader(csvfile)  # csv
    ss = [row for row in rows if row != []]
    print('============================')
    table = slide.shapes.add_table(rows=4, cols=3, left=Inches(1), top=Inches(2), width=Inches(8), height=Inches(4))
    ii = -1
    for row in table.table.rows:
        jj = -1
        ii = ii+1
        for cell in row.cells:
            jj = jj+1
            cell.text_frame.text = str(ss[ii][jj])
docname = 'csv.chapter5' + '.pptx'
pptFile.save(docname)

结果:
在这里插入图片描述

对数据做统计分析

在这里插入图片描述在这里插入图片描述
结果:
在这里插入图片描述

简单的可视化

因为我是为了完成作业做的,数据给的特别简单,可以自己创建数据csv,原理和我下面列的一样。

  • 柱状图
# -*- coding:utf-8 -*-
import xlsxwriter

# 创建一个excel
workbook = xlsxwriter.Workbook("chart_column.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()

# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})

# --------1、准备数据并写入excel---------------
headings = ['index', 'a_name', 'b_name']
data = [
    ['0', '1', '2'],
    [1, 2, 3],
    [3, 3, 4]
]

# 写入表头
worksheet.write_row('A1', headings, bold)

# 写入数据
worksheet.write_column('A2', data[0], bold)
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])

# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(column chart)
chart_col = workbook.add_chart({'type': 'column'})

# 配置第1个系列数据
chart_col.add_series({
    # sheet1是默认的值
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$4',
    'values': '=Sheet1!$B$2:$B$4',
    'fill': {'color': 'red', 'transparency': 30},
})

# 配置第2个系列数据
chart_col.add_series({
    'name': '=Sheet1!$C$1',
    'categories': '=Sheet1!$A$2:$A$4',
    'values': '=Sheet1!$C$2:$C$4',
    'fill': {'color': 'blue', 'transparency': 30},
})

# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'title'})
chart_col.set_x_axis({'name': 'x'})
chart_col.set_y_axis({'name':  'y'})

# 设置图表的风格
chart_col.set_style(1)

# 把图表插入到worksheet以及偏移
worksheet.insert_chart('A6', chart_col, {'x_offset': 25, 'y_offset': 10})

workbook.close()

结果:
在这里插入图片描述

  • 饼状图
# -*- coding:utf-8 -*-
import xlsxwriter

# 创建一个excel
workbook = xlsxwriter.Workbook("chart_pie.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()

# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})

# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
data = [
    ['index', 'a_name', 'b_name'],
    [3, 6, 10],
]

# 写入数据
worksheet.write_row('A1', data[0], bold)
worksheet.write_row('A2', data[1])

# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(pie chart)
chart_col = workbook.add_chart({'type': 'pie'})

# 配置第一个系列数据
chart_col.add_series({
    'name': 'Bug Counts',
    'categories': '=Sheet1!$A$1:$C$1',
    'values': '=Sheet1!$A$2:$C$2',
    'points': [
        {'fill': {'color': '#BC3FBC'}},
        {'fill': {'color': '#0DAD48'}},
        {'fill': {'color': '#D8B31C'}},
        {'fill': {'color': 'gray'}},
    ],
})
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'Bug Counts'})
# 设置图表的风格,excel内置48种图表样式
chart_col.set_style(25)
# 把图表插入到worksheet以及坐标位置
worksheet.insert_chart('B3', chart_col, {'x_offset': 25, 'y_offset': 10})
workbook.close()

结果:
在这里插入图片描述

  • 折线图
# -*- coding:utf-8 -*-
import xlsxwriter

# 创建一个excel
workbook = xlsxwriter.Workbook("chart_line.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()
# 自定义样式,加粗
bold = workbook.add_format({'bold': 1})
# --------1、准备数据并写入excel---------------
# 向excel中写入数据,建立图标时要用到
headings = ['Index', 'name_a', 'name_b']
data = [
    ['0', '1', '2'],
    [1, 2, 3],
    [3, 3, 4],
]
# 写入表头
worksheet.write_row('A1', headings, bold)
# 写入数据
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])
# --------2、生成图表并插入到excel---------------
# 创建一个柱状图(line chart)
chart_col = workbook.add_chart({'type': 'line'})
# 配置第1个系列数据
chart_col.add_series({
    # 这里的Sheet1是默认的值
    'name': '=Sheet1!$B$1',
    'categories': '=Sheet1!$A$2:$A$4',
    'values':   '=Sheet1!$B$2:$B$4',
    'line': {'color': 'red'},
})
# 配置第2个系列数据
chart_col.add_series({
    'name': '=Sheet1!$C$1',
    'categories':  '=Sheet1!$A$2:$A$4',
    'values':   '=Sheet1!$C$2:$C$4',
    'line': {'color': 'yellow'},
})
# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name': 'The dll return Analysis'})
chart_col.set_x_axis({'name': 'return value'})
chart_col.set_y_axis({'name':  'count'})
# 设置图表的风格
chart_col.set_style(1)
# 把图表插入到worksheet并设置偏移
worksheet.insert_chart('A6', chart_col, {'x_offset': 25, 'y_offset': 10})
# 关闭文件
workbook.close()

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值