当前位置: 首页 > 新闻资讯  > 资产管理系统

使用Python实现固定资产管理系统并生成PPT报告

本文通过对话形式,介绍如何使用Python开发一个简单的固定资产管理系统,并利用PPT库生成可视化报告。文章包含具体代码和实现步骤。

小明:嘿,小李,最近我在学校要做一个关于资产管理的项目,听说你对Python挺熟悉的,能不能帮我看看怎么用Python做一个固定资产管理系统

小李:当然可以!固定资产管理系统其实不难,主要就是管理资产的信息,比如名称、编号、购置日期、负责人等。你可以先设计一个数据库来存储这些信息,然后写一些功能来添加、查询、修改和删除资产。

小明:那数据库的话,用什么比较好呢?我之前没怎么接触过数据库。

小李:可以用SQLite,它是Python内置的轻量级数据库,不需要额外安装服务器。我们可以用Python的sqlite3模块来操作它。

小明:明白了,那我先创建一个数据库,然后建一张表来存资产信息。

小李:对,下面是一个示例代码,你可以先试试看。

import sqlite3

# 创建数据库连接

conn = sqlite3.connect('assets.db')

cursor = conn.cursor()

# 创建资产表

cursor.execute('''

CREATE TABLE IF NOT EXISTS assets (

id INTEGER PRIMARY KEY AUTOINCREMENT,

name TEXT NOT NULL,

asset_number TEXT NOT NULL UNIQUE,

purchase_date TEXT NOT NULL,

owner TEXT NOT NULL,

status TEXT NOT NULL

)

''')

conn.commit()

conn.close()

小明:这段代码是创建了一个名为assets.db的数据库,并且在其中创建了一个assets表。表中包括id、name、asset_number、purchase_date、owner和status这几个字段。

小李:没错,接下来你可以写一些函数来操作这个表,比如添加资产、查询资产、更新状态等。

小明:那我应该怎么添加资产呢?

小李:可以写一个add_asset函数,参数包括name、asset_number、purchase_date、owner和status。然后执行SQL插入语句。

def add_asset(name, asset_number, purchase_date, owner, status):

conn = sqlite3.connect('assets.db')

cursor = conn.cursor()

cursor.execute('INSERT INTO assets (name, asset_number, purchase_date, owner, status) VALUES (?, ?, ?, ?, ?)',

(name, asset_number, purchase_date, owner, status))

conn.commit()

conn.close()

print("资产已成功添加!")

小明:这样就完成了添加资产的功能,那如果我想查询某个资产的信息呢?

小李:可以用select_asset函数,根据asset_number或者id来查询。

def select_asset(asset_number=None, asset_id=None):

conn = sqlite3.connect('assets.db')

cursor = conn.cursor()

if asset_number:

cursor.execute('SELECT * FROM assets WHERE asset_number = ?', (asset_number,))

elif asset_id:

cursor.execute('SELECT * FROM assets WHERE id = ?', (asset_id,))

else:

cursor.execute('SELECT * FROM assets')

results = cursor.fetchall()

conn.close()

return results

小明:太好了,这样就能方便地查看资产信息了。那如果我要修改资产的状态呢?

小李:可以写一个update_status函数,根据asset_number或id来更新状态。

固定资产管理系统

def update_status(asset_number, new_status):

conn = sqlite3.connect('assets.db')

cursor = conn.cursor()

cursor.execute('UPDATE assets SET status = ? WHERE asset_number = ?', (new_status, asset_number))

conn.commit()

conn.close()

print("资产状态已更新!")

小明:看来我已经有了一个基本的固定资产管理系统了。不过,我还想把数据导出成PPT报告,这样展示起来更直观。

小李:这个没问题,Python有一个叫做python-pptx的库,可以用来生成PPT文件。

小明:那我要怎么安装这个库呢?

小李:可以用pip安装,命令是:pip install python-pptx。

小明:好的,安装好了。那我该怎么用它来生成PPT呢?

小李:我们可以从数据库中读取数据,然后将每条资产信息添加到PPT的一个幻灯片中。

from pptx import Presentation

from pptx.util import Inches

def generate_ppt():

# 创建PPT对象

prs = Presentation()

slide_layout = prs.slide_layouts[5] # 使用空白布局

# 获取所有资产数据

assets = select_asset()

for asset in assets:

slide = prs.slides.add_slide(slide_layout)

title = slide.shapes.title

title.text = "资产信息"

body = slide.placeholders[1]

body.text = f"ID: {asset[0]}\n名称: {asset[1]}\n编号: {asset[2]}\n购置日期: {asset[3]}\n负责人: {asset[4]}\n状态: {asset[5]}"

# 保存PPT

prs.save('assets_report.pptx')

print("PPT报告已生成!")

小明:这样就可以生成一个包含所有资产信息的PPT了,看起来很清晰。

小李:没错,而且你还可以进一步美化PPT,比如添加图表、图片等,让报告更加专业。

小明:那我可以在这个基础上扩展更多功能吗?比如统计不同状态的资产数量?

小李:当然可以,你可以用SQL的GROUP BY语句来统计不同状态的数量,然后将结果以图表的形式展示在PPT中。

小明:听起来很棒!我现在对这个项目更有信心了。

小李:是的,只要你愿意动手实践,一定能做出一个不错的系统。记得多测试,确保每个功能都正常运行。

小明:谢谢你,小李,你的帮助真的很大!

小李:不用客气,有问题随时问我!祝你项目顺利!

相关资讯

    暂无相关的数据...