将list中的值写入表格中

一、背景
最近在给同事通过代码进行拉取数据时,总是以以list或者dict为最后结果。很不利于同事数据的后续处理,故增加写入文件的过程。
二、
1.代码结构说明
本代码主要是利用xlwt和xlrd对EXCEL进行读写
三个函数
(1)函数一:创建xls文件,并写入列名
xlwt的add_sheet创建表单,并把元组的值传给首行
(2)函数二和函数三类似
函数二:在已有的文件中,写入列表的值
函数三:在已有的文件中,写入字典的值
打开文件-复制文件内容-写入文件-保存文件
2.代码

import xlwt
import xlrd
import xlutils.copy

def creat_execel_write_col_name(col_name_tuple,save_path,sheet_name = "sheet0"):
    """
    功能:实现新建sheet页,并首行进行赋值(列名)
    :param sheet_name: sheet页自定义名称
    :param col_name_tuple:以元组的形式定义 首行字段名
    :param save_path:文件存储路径
    :return:
    """

    #创建book实例:编码格式=utf-8,是否压缩=否
    book = xlwt.Workbook(encoding='utf-8', style_compression=0)
    #创建表单
    sheet = book.add_sheet(sheet_name, cell_overwrite_ok=True)
    #添加列名
    for i in range(len(col_name_tuple)):
        sheet.write(0, i, col_name_tuple[i])
    #保存sheet页
    book.save(save_path)


def write_execel_datalist(datalist,savepath):
    """
    功能:打开文件,并将[[],[],[]]中每个[]写入文件中
    :param datalist: ["eg0","eg1","eg2","eg3"]
    :param savepath: 文件存储路径
    :return:
    """

    xls = xlrd.open_workbook(savepath, formatting_info=True)
    #获取原数据
    wbook = xlutils.copy.copy(xls)
    wsheet = wbook.get_sheet(0)
    #print(xls.sheets())
    #获取表格内容
    table = xls.sheets()[0]
    #获取当前文件内容的行数和列数
    nrows = table.nrows
    ncols = table.ncols

    # 写入数据
    for i in range(len(datalist)):
        data = datalist[i]
        for j in range(0,ncols):
            wsheet.write(nrows, j, data[j])
        nrows +=1
    wbook.save(savepath)

def write_execel_datadictlist(datadictlist,savepath):
    """
    功能:打开文件,并将[{},{},{}]中每一个{}写入表中
    :param datadictlist: [{1,2,3},{"one","two","three"},{"一","二","三"}]
    :param savepath: 文件名
    :return:
    """

    xls = xlrd.open_workbook(savepath, formatting_info=True)
    #获取原数据
    wbook = xlutils.copy.copy(xls)
    wsheet = wbook.get_sheet(0)

    #获取表格内容和总行数和总列数
    table = xls.sheets()[0]
    nrows = table.nrows
    ncols = table.ncols

    # 写入数据
    for i in range(len(datadictlist)):
        datadict_values = list(datadictlist[i].values())
        for j in range(0,ncols):
            wsheet.write(nrows, j, datadict_values[j])
        nrows +=1
    wbook.save(savepath) 


if __name__ == "__main__":
    save_path = "***/***/这三年.xls"
    sheet_name = "新冠"
    col_name_tuple =("2020","2021","2022")
    datalist = [["原始毒株","德尔塔","奥密克戎"],["发烧","咳嗽","乏力"],["莲花清瘟","布洛芬","大量饮水"]]
    datadictlist =[{1:"one",2:"two",3:"three"},{1:"一",2:"二",3:"三"},{1:"壹",2:"贰",3:"叁"}]
    creat_execel_write_col_name(col_name_tuple,save_path,sheet_name)
    write_execel_datalist(datalist,save_path)
    write_execel_datadictlist(datadictlist, save_path)

3.运行代码

在这里插入图片描述

仅供想用的同学参考,有不正确的或者不好的地方欢迎指正。

List按下标索引写入表格通常是指在编写程序时,需要把一个的数据按照特定的格式(如表格形式)进行输出。这在处理数据展示,如在Web页面、Excel表格或控制台中显示数据时经常用到。这里提供一个简单的例子,假设我们要将一个Java List对象中的数据写入一个HTML表格中: 1. 创建一个HTML表格的基本结构。 2. 遍历List,将每个元素按顺序插入表格的单元格中。 以下是一个简单的代码示例: ```java import java.util.List; public class ListToTable { public static void main(String[] args) { // 假设我们有一个List<String>类型的列 List<String> list = List.of("数据1", "数据2", "数据3", "数据4"); // 开始创建表格 String table = "<table border='1'>"; // 开始表格并设置边框 table += "<tr><th>索引</th><th></th></tr>"; // 添加头 // 遍历List写入表格 for (int i = 0; i < list.size(); i++) { table += "<tr><td>" + i + "</td><td>" + list.get(i) + "</td></tr>"; // 添加行数据 } table += "</table>"; // 结束表格 // 输出或保存table字符串,其中包含了表格的HTML代码 System.out.println(table); } } ``` 这段代码会输出一个包含List数据的HTML表格代码,如下: ```html <table border='1'> <tr><th>索引</th><th></th></tr> <tr><td>0</td><td>数据1</td></tr> <tr><td>1</td><td>数据2</td></tr> <tr><td>2</td><td>数据3</td></tr> <tr><td>3</td><td>数据4</td></tr> </table> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值