鱼C论坛

 找回密码
 立即注册
查看: 1679|回复: 2

[作品展示] 客户管理系统

[复制链接]
发表于 2020-8-21 10:25:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
废话少说直接上代码
import os.path

import openpyxl
from openpyxl.styles import Alignment


# 创建excel表格
def create():
    # 创建excel表格
    wb = openpyxl.Workbook()
    ws = wb.active
    # 设置格式
    al = Alignment(
        horizontal='left',  # 水平方向:center, left, right
        vertical='center'  # 垂直方向: center, top, bottom
    )
    for cell in ws['A']:
        cell.number_format = '@'
    ws['A1'].alignment = al
    ws.column_dimensions['A'].width = 20
    ws['B1'].alignment = al
    ws['C1'].alignment = al
    ws['D1'].alignment = al
    ws['E1'].alignment = al
    # 添加信息
    ws['A1'] = '身份证件号'
    ws['B1'] = '姓名'
    ws['C1'] = '房间号'
    ws['D1'] = '房费'
    ws['E1'] = '押金'
    # 保存
    wb.save('信息表.xlsx')


# 查询住户信息
def Inquire():
    """

    :rtype: object
    """
    wb = openpyxl.load_workbook('信息表.xlsx')
    my_sheet = wb.worksheets[0]
    # 循环每一行除了表头
    for row in my_sheet:
        ID = row[0]  # 身份证所在的列
        product_value = ID.value
        product_value1 = str(product_value)
        while True:
            Ch = input("请输入身份证件号:")
            if product_value1 == Ch:
                if product_value != '身份证件号':
                    price_column = row[0]  # 身份证所在的列
                    ID_card = price_column.value
                    price_column = row[1]  # 姓名所在的列
                    name = price_column.value
                    price_column = row[2]  # 房间号所在的列
                    room_number = price_column.value
                    price_column = row[3]  # 房费所在的列
                    Room_rate = price_column.value
                    price_column = row[4]  # 押金所在的列
                    deposit = price_column.value
                    print(f"身份证件号:{ID_card} 姓名:{name} 房间号:{room_number} 房费:{Room_rate} 押金:{deposit}")
                break
            else:
                print("没有该用户")


# 修改住户信息
def modify():
    while True:
        wb = openpyxl.load_workbook('信息表.xlsx')
        ws = wb.active
        my_sheet = wb.worksheets[0]
        # 循环每一行除了表头
        Ch = Inquire()
        Ch1 = input("再次确认修改住户信息(是/否):")
        if Ch1 == "是":
            # 循环第一个列表
            for row in my_sheet:
                ID = row[0]
                product_value = ID.value
                product_value1 = str(product_value)
                # 判断与用户输入进行判断
                if product_value1 == Ch:
                    ID1 = str(ID)
                    data = []
                    data1 = ['A', 'B', 'C', 'D', 'E']
                    information = ["身份证件号:", "姓名:", "房间号:", "房费:", "押金:"]
                    j = 0
                    for i in ID1:
                        data.append(i)
                    del data[:15]
                    data = data[0:-1]
                    # 判断列表有是一位还是两位
                    if len(data) == 2:
                        for i in data1:
                            name = i + data[0] + data[1]
                            ws[name] = input(information[j])
                            j += 1
                    else:
                        for i in data1:
                            name = i + data[0]
                            ws[name] = input(information[j])
                            j += 1
            for cell in ws['A']:
                cell.number_format = '@'
            wb.save('信息表.xlsx')
            break
        elif Ch1 == "否":
            break


# 添加住户
def Add_to():
    # 打开excel表格
    wb = openpyxl.load_workbook('信息表.xlsx')
    # 获取最后一行并加一行
    sheet = wb['Sheet']
    max_row = sheet.max_row
    line = max_row + 1
    # 输入数据
    num = input("身份证件号:")
    name = input("姓名:")
    num2 = input("房间号:")
    num3 = input("房费:")
    num4 = input("押金:")
    # 导入到excel表格里
    sheet.cell(line, 1).value = num
    sheet.cell(line, 2).value = name
    sheet.cell(line, 3).value = num2
    sheet.cell(line, 4).value = num3
    sheet.cell(line, 5).value = num4
    # 保存
    wb.save('信息表.xlsx')


# 删除住户
def delete():
    Ch = Inquire()
    Ch1 = input("再次删除住户信息(是/否):")
    wb = openpyxl.load_workbook('信息表.xlsx')
    ws = wb.active
    my_sheet = wb.worksheets[0]
    while True:
        if Ch1 == "是":
            # 循环第一个列表
            for row in my_sheet:
                ID = row[0]
                product_value = ID.value
                product_value1 = str(product_value)
                # 判断与用户输入进行判断
                if product_value1 == Ch:
                    # 因为本人能力有限只可以用获取到单元格的位置然后获取到数字然后进行删除
                    ID1 = str(ID)
                    data = []
                    for i in ID1:
                        data.append(i)
                    del data[:15]
                    data = data[0:-1]
                    # 判断列表有是单还是双
                    if len(data) == 2:
                        name = int(data[0] + data[1])
                        ws.delete_rows(name)
                    else:
                        name = int(data[0])
                        ws.delete_rows(name)
            # 保存
            wb.save("信息表.xlsx")
            print("已删除")
            break
        elif Ch1 == "否":
            break
        else:
            print("没有该用户的信息")


# 选择
def select():
    while True:
        print("1:查询住户信息  2:修改住户信息 3:添加住户 4:删除住户 5:退出")
        Ch = input("请选择:")
        if Ch == "1":
            Inquire()
            continue
        elif Ch == "2":
            modify()
            continue
        elif Ch == "3":
            Add_to()
            continue
        elif Ch == "4":
            delete()
            continue
        elif Ch == "5":
            break
        else:
            print("输入错误")


# 判断是否有信息表
if not os.path.exists('信息表.xlsx'):
    create()
    print("创建成功")
    Add_to()
else:
    select()
写的有点菜,还在慢慢完成
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2020-8-22 15:41:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 16:59:50 | 显示全部楼层
为什么添加信息后查询和删除的时候显示无用户,表格里确实有了用户
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 07:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表