需求:读取Excel表中数据,每行数据放在一个列表中,再把所有列表都存入到一个列表中,形成二维列表。

实现方法:导入可在Python处理Excel表格数据的模块。

excel表:


方法一:xlwings

  了解到xlwings很强大,但是折戟沉沙(本地环境问题)。

1. 写一个测试demo如下:

import xlwings as xw

# 打开excel,参数visible表示处理过程是否可视,add_book表示是否打开新的Excel程序
with xw.App(visible=True, add_book=False) as app:
# 创建一个工作薄
book = app.books.add()
# 工作薄中创建一个sheet表
sht = book.sheets.add()
# 向表格的A1单元格写入“Hello Python”
sht.range('A1').value = 'Hello Python'
# 保存
book.save('./test.xlsx')

2. 代码执行结果:

"D:\Program Files\python3\python.exe" "D:\Program Files\python3\Zyl\demo71.py"
Traceback (most recent call last):
File "D:\Program Files\python3\Zyl\demo71.py", line 4, in <module>
with xw.App(visible=True, add_book=False) as app:
File "D:\Program Files\python3\lib\site-packages\xlwings\main.py", line 294, in __init__
self.impl = engines.active.apps.add(
File "D:\Program Files\python3\lib\site-packages\xlwings\main.py", line 203, in add
return App(impl=self.impl.add(**kwargs))
File "D:\Program Files\python3\lib\site-packages\xlwings\_xlwindows.py", line 497, in add
return App(spec=spec, add_book=add_book, xl=xl, visible=visible)
File "D:\Program Files\python3\lib\site-packages\xlwings\_xlwindows.py", line 521, in __init__
self._xl = COMRetryObjectWrapper(DispatchEx("Excel.Application"))
File "D:\Program Files\python3\lib\site-packages\win32com\client\__init__.py", line 145, in DispatchEx
dispatch = pythoncom.CoCreateInstanceEx(
pywintypes.com_error: (-2147024894, '系统找不到指定的文件。', None, None) Process finished with exit code 1

  百度搜索该问题,很多回答都是说安装了WPS导致的该问题,我的电脑并未安装WPS,无法用网上搜索到的解决方案解决。还有的说要根据报错修改源码,比较麻烦,放弃。


方法二:xlrd

  该方法可将excel数据转化为二维列表,但是列表的中的数据格式发生变异。

1. 代码实现如下:

import xlrd
# coding=utf-8 #读取文件
def read_excel(files, sheet, row):
try:
workbook = xlrd.open_workbook(files)
table = workbook.sheet_by_name(sheet)
nrows = table.nrows # 表的行数
value_list = []
for i in range(row, nrows):
rowvalue = table.row_values(i)[0:5]
value_list.append(rowvalue)
print(value_list)
return value_list except:
print('文件读取失败!')
# 调用函数
read_excel(r'D:\Program Files\python3\Zyl\sgs2.xls','压测结果',2)

2. 代码执行结果:

  时间、数字的格式不对,再转化比较麻烦,该方法舍弃。


方法三:openpyxl

  这也是一款强大的工具,满足当前需求,采用。

1. 代码实现如下:

import openpyxl

#读取文件
def read_excel(files, sheet):
try:
my_list = [] # 按行存放Excel表中数据
wb = openpyxl.load_workbook(files)
ws = wb[sheet]
maxrows = ws.max_row # 获取最大行
for i in range(maxrows-2):
temp_list = []
for each in ws.iter_cols( max_col=5,min_row=3):
temp_list.append(each[i].value)
my_list.append(temp_list) print(my_list)
print(ws)
return my_list except:
print('文件读取失败!')
# 调用函数
read_excel(r'result.xlsx','压测结果')

2. 代码执行结果:

  excel表中的数据写入到列表中后,格式没有发生变化。 nice!!!

通过python,将excel中的数据写入二维列表的更多相关文章

  1. 使用Python将Excel中的数据导入到MySQL

    使用Python将Excel中的数据导入到MySQL 工具 Python 2.7 xlrd MySQLdb 安装 Python 对于不同的系统安装方式不同,Windows平台有exe安装包,Ubunt ...

  2. 利用Kettle 从Excel中抽取数据写入SQLite

    SQLite作为一种数据库可以配置为Kettle的数据输入和输出,这个例子是从Excel中抽取数据然后写入到SQLite中 配置测试并成功后如下 下面是配置步骤: Excel输入配置 sqlite配置 ...

  3. 从txt文件中读取数据放在二维数组中

    1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.030000 ...

  4. Python读取Excel中的数据并导入到MySQL

    """ 功能:将Excel数据导入到MySQL数据库 """ import xlrd import MySQLdb # Open the w ...

  5. python读取excel中的数据

    import numpy as np import matplotlib.pyplot as plt import pandas as pd #df = pd.read_excel('/Users/N ...

  6. 用python在excel中读取与生成随机数写入excel中

    今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...

  7. 将Oracle数据库中的数据写入Excel

    将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...

  8. 从Excel中读取数据并批量写入MySQL数据库(基于MySQLdb)

    一.Excel内容如下,现在需要将Excel中的数据全部写入的MySQL数据库中: 二.连接MySQL的第三方库使用的是“MySQLdb”,代码如下: # -*- coding:utf-8 -*-im ...

  9. python 去除Excel中的重复行数据

    导入pandas import pandas as pd 1.读取excel中的数据: frame = pd.DataFrame(pd.read_csv('excel的绝对路径.csv'', 'She ...

  10. C# Unity游戏开发——Excel中的数据是如何到游戏中的 (二)

    本帖是延续的:C# Unity游戏开发——Excel中的数据是如何到游戏中的 (一) 上个帖子主要是讲了如何读取Excel,本帖主要是讲述读取的Excel数据是如何序列化成二进制的,考虑到现在在手游中 ...

随机推荐

  1. celery+Rabbit MQ简单的Demo

    介绍 一个简单的celery + rabbitmq 的搭建例子,用于记录 Celery 异步处理框架, 安装命令 pip install celery RabbitMQ 消息中间件,用来做队列 安装配 ...

  2. Git&GitHub简介与入手(三)

    五.eclipse中的git使用 1.eclipse中本地库操作 (检测显示创建成功): (设置本地库范围签名): (一些git里的图标,保存着不同内容): https://github.com/gi ...

  3. 【保姆级教程】如何用Rust编写一个ChatGPT桌面应用

    为什么我们需要一个桌面应用 原因实在太多,我们需要便捷地导出记录,需要在回答长度超长的时候自动加上"继续",需要收藏一些很酷很实用的prompt...... (首先我假设你是一名如 ...

  4. Django接入drf_yasg2 API接口文档-完整操作(包含错误处理)

    drf_yasg2的简介: drf-yasg是Django RestFramework的一个扩展,使⽤drf_yasg2下载⾃动⽣成的api⽂档的json或yaml⽂件配置项. drf_yasg2的安 ...

  5. Abstract Factory Pattern 抽象工厂模式简介与 C# 示例【创建型】【设计模式来了】

    〇.简介 1.什么是抽象工厂模式? 一句话解释:   通过对抽象类和抽象工厂的一组实现,独立出一系列新的操作,客户端无需了解其逻辑直接访问. 抽象工厂模式(Abstract Factory Patte ...

  6. Java中如何中断线程

    在Java中,可以使用以下方法中断线程: 1. 使用`interrupt()`方法:每个线程对象都有一个`interrupt()`方法,用于中断该线程.当调用线程的`interrupt()`方法时,它 ...

  7. 【网络知识】虚拟机的桥接、NAT、仅主机模式分别是什么?

    在我们安装 VMware 时,VMware 会自动三种 3 种网络连接模式,分别为VMnet0 (桥接模式).VMnet8 (NAT模式).VMnet1 (仅主机模式),当然我们也可以根据需要自行创建 ...

  8. 用python SMTP发送简单邮件

    python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议 它是一组由源地址到目的地址传送邮件得规则,由它来控制信件的中转方式. Pyth ...

  9. Windows11右键菜单修改为Win10模式的方法

    Windows11右键菜单修改为Win10模式的方法 自述: 更新win11后看着鼠标右键的菜单有些不太舒服,索性就改回了win10的右键菜单的样式 , 下面开始进行操作 第一步 首先以管理员方式打开 ...

  10. 记一次Native memory leak排查过程

    1 问题现象 路由计算服务是路由系统的核心服务,负责运单路由计划的计算以及实操与计划的匹配.在运维过程中,发现在长期不重启的情况下,有TP99缓慢爬坡的现象.此外,在每周例行调度的试算过程中,能明显看 ...