NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 是一个运行速度非常快的数学库,主要用于数组计算
python操作excel主要用到xlrdxlwt这两个库,即xlrd是读excel,xlwt是写excel的库。
xlutils提供一组用来操作Excel的工具,这些工具可能需要xlrd和xlwt的配合。
xlutils.copy 用来将xlrd.Book对象复制到xlwt.Workbook对象
(一)Python将一(多)维数组写入excel中的

# coding=UTF-8
import xlrd
import xlwt
import numpy as np
from xlutils.copy import copy

# 定义四个表格
excel1 = '表格1.xls' # 表名
excel2 = '表格2.xls'
excel3 = '表格3.xls'
excel4 = '表格4.xls'

# 想写入哪个表格后面就跟哪个表格
excel_name = 'excel/' + excel1 # 记得新建一个文件夹“excel”(在项目下面)

# sheet名称
sheet_name = '测试数据'

# 表头
title = ['Sequence', 'Temp', 'Vth', 'Vgs']

# 示例数据
data0 = list(range(0,100))  # 获取0-99一共一百个数据(一维数组)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,......]
#print(data0)
data1 = 1 * np.random.rand(100) #通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。
print(data1)
# data1 = 1 * np.random.randn(100)
# data1 = 1 * np.random.randint(100)
# data1 = 1 * np.random.permutation(100)
data2 = 2 * data1
data3 = 3 * data1

# 新建表格
def excel_int(path, sheet_name):
    workbook = xlwt.Workbook()  # 新建一个工作簿
    workbook.add_sheet(sheet_name)  # 在工作簿中新建一个表格
    workbook.save(path)  # 保存工作簿
    print("新建表格成功,表格名称为:",path)

# 写入表头
def excel_write_title(path, titels):
    workbook = xlrd.open_workbook(path)  # 打开工作簿
    new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象
    new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格
    for j in range(0, len(titels)):
        new_worksheet.write(0, j, str(titels[j]))  # 表格中写入数据(对应的行)
    new_workbook.save(path)  # 保存工作簿

# 向表格按列写入一维数组(列表)
def excel_write_array(path, value, column):
    workbook = xlrd.open_workbook(path)  # 打开工作簿
    new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象
    new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格
    for i in range(0, len(value)):
        # 向表格中写入数据(对应的列),初始位置加1(因为有表头)
        new_worksheet.write(i+1, column, float(value[i]))
    new_workbook.save(path)  # 保存工作簿

# 新建表格
excel_int(excel_name, sheet_name)

# 写入表头
excel_write_title(excel_name, title)

# 写入四列数据
excel_write_array(excel_name, data0, 0)
excel_write_array(excel_name, data1, 1)
excel_write_array(excel_name, data2, 2)
excel_write_array(excel_name, data3, 3)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐