需求:读取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. 2022-12-16:给你一个长度为n的数组,并询问q次 每次询问区间[l,r]之间是否存在小于等于k个数的和大于等于x 每条查询返回true或者false。 1 <= n, q <= 10^5 k

    2022-12-16:给你一个长度为n的数组,并询问q次 每次询问区间[l,r]之间是否存在小于等于k个数的和大于等于x 每条查询返回true或者false. 1 <= n, q <= 1 ...

  2. ClickHouse笔记: Ubuntu/Centos下的安装, 配置和用户管理

    ClickHouse ClickHouse 属于 OLAP 数据库 OLTP 与 OLAP OLTP (On-Line Transaction Processing 联机事务处理), 注重事务处理, ...

  3. SQL Server2019 删除列字段

    命令: 有默认值时用:alter table 表名 DROP  约束 alter table 表名 DROP COLUMN 列名 例如: alter table LJEL005H DROP COLUM ...

  4. .cur 图片加载提示 You may need an appropriate loader to handle this file type

    最近一个gis 项目需要加载一个.cur的图标,但是编译时提示 You may need an appropriate loader to handle this file type, current ...

  5. 00.Webstrom的基本入门设置

    1.取消红框类自动打开项目 2.打开轮滚缩放代码 3.设置代码字体,这里选择的是Consolas 推荐免费字体:https://files.cnblogs.com/files/huadaxia/jet ...

  6. 数据科学工具 Jupyter Notebook 教程(二)

    Jupyter Notebook 是一个把代码.图像.注释.公式和作图集于一处,实现可读性分析的交互式笔记本工具.借助所谓的内核(Kernel)的概念,Jupyter Notebook 可以同时支持包 ...

  7. Galaxy生物信息分析平台的数据集对象清理

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. Galaxy Project 是在云计算背景下诞生的一个生物信息学可视化分析开源项目.该项目由 ...

  8. R 包初学者指南

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. 基于 11 个最常见的用户问题介绍 R 软件包. R 包是由社区开发 (developed b ...

  9. 《系列二》-- 1、BeanFactory.getBean 总览

    目录 一句话概括 1 书接上回 2 揭开 doGetBean() 的神秘面纱, 重要操作一览 3 必要的课外知识 3.1 bean 的作用域 Scope 有哪些 3.2 FactoryBean 是什么 ...

  10. 从头学Java17-Stream API(一)

    Stream API Stream API 是按照map/filter/reduce方法处理内存中数据的最佳工具. 本系列中的教程包含从基本概念一直到collector设计和并行流. 在流上添加中继操 ...