当前位置:首页 » 编程语言 » 从excel到python

从excel到python

发布时间: 2022-11-06 19:40:16

1. excel中想实现使用python代替VBA,请问应该怎么做

1、首先需要打开excel软件,然后利用xlwings替代VBA写宏。

2. 一个Excel表格(53×56)全是数字构成,如何将其作为一个矩阵导入到Python中

还是先把Excel中的输入读取到程序,读到程序中了,你想干嘛就干嘛
前言

在很多应用场景中,程序都需要读取excel的配置。
比如,在游戏中,数值策划用excel 建好了数值表,我们要导入到游戏中。

概述
这里我使用了 pyexcel-xls 这个东西。我个人觉得这个东西导出的数据结构,结构可读性很强,数据结构如下:
整个excel文件,转化为一个字典结构:每个key就是一个子表(Sheet)
每个子表(Sheet),转化为一个二维数组:分别为行和列。

注意,本文对应的版本更新为 pyexcel-xls 0.2.3。

安装

pypi

■ 方法一:
可以直接用pip安装

pip install pyexcel-xls

■ 方法二:

下载安装包手动安装。
先安装两个依赖包:
xlrd 和 pyexcel-io

然后再安装 pyexcel-xls

使用
一、读excel数据 (xls, xlsx)

1,先建立一个目标excel表,这里为了做演示,简单建立一个 read_test.xlsx 文件:
里面的数据(3行,4列):

2,写python 脚本,读这个文件:

[python] view plain
#! /usr/bin/env python
#coding=utf-8

# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict

from pyexcel_xls import get_data
from pyexcel_xls import save_data

def read_xls_file():
xls_data = get_data(r"D:\read_test.xlsx")
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]

if __name__ == '__main__':
read_xls_file()

看一下输出的打印信息:

可以看到:
整个excel文件,转化为一个OrderedDict (有序字典)结构:每个key就是一个子表(Sheet)。
每个子表(Sheet),转化为一个列表结构:很像二维数组,第一层列表为行(Row),行的下标为列(Column),对应的值为单元格的值。编码为 unicode
简单,易用,读出数据后,非常适合做二次处理!
■ 注意,excel文件名(就是那个xls或者xlsx文件),尽量不要用中文,如果您要使用中文,请转化为unicode编码,如:
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))

二、写excel数据 (xls)
根据上文,写也比较简单,不做过多解释。
[python] view plain
#! /usr/bin/env python
#coding=utf-8

# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict

from pyexcel_xls import get_data
from pyexcel_xls import save_data

def read_xls_file():
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]
return xls_data

# 写Excel数据, xls格式
def save_xls_file():
data = OrderedDict()
# sheet表的数据
sheet_1 = []
row_1_data = [u"ID", u"昵称", u"等级"] # 每一行的数据
row_2_data = [4, 5, 6]
# 逐条添加数据
sheet_1.append(row_1_data)
sheet_1.append(row_2_data)
# 添加sheet表
data.update({u"这是XX表": sheet_1})

# 保存成xls文件
save_data("D:\write_test.xls", data)

if __name__ == '__main__':
save_xls_file()

看一下写出的xls文件:

好,数据读写完成!

3. Python处理Excel效率高十倍(下篇)通篇硬干货,再也不用加班啦

《用Python处理Excel表格》下篇来啦!

身为工作党或学生党的你,平日里肯定少不了与Excel表格打交道的机会。当你用Excel处理较多数据时,还在使用最原始的人工操作吗?现在教你如何用Python处理Excel,从此处理表格再也不加班,时间缩短数十倍!

上篇我们进行了一些事前准备,目的是用Python提取Excel表中的数据。而这一篇便是在获取数据的基础上,对Excel表格的实操处理。

第9行代码用来指定创建的excel的活动表的名字:
·不写第9行,默认创建sheet
·写了第9行,创建指定名字的sheet表

第9行代码,通过给单元格重新赋值,来修改单元格的值
第9行代码的另一种写法sheet['B1'].value = 'age'
第10行代码,保存时如果使用原来的(第7行)名字,就直接保存;如果使用了别的名字,就会另存为一个新文件

插入有效数据
使用append()方法,在原来数据的后面,按行插入数据

·insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入
·insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入

·delete_rows(idx=数字编号, amount=要删除的行数)
·delete_cols(idx=数字编号, amount=要删除的列数)

move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上

举个例子:

openpyxl.styles.Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
其中,字体颜色中的color是RGB的16进制表示

再者,可以使用for循环,修改多行多列的数据,在这里介绍了获取的方法

Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
水平对齐:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,'right,‘general’
垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’

当然,你仍旧可以调用for循环来实现对多行多列的操作

设置行列的宽高:
·row_dimensions[行编号].height = 行高
·column_dimensions[列编号].width = 列宽

合并单元格有下面两种方法,需要注意的是,如果要合并的格子中有数据,即便python没有报错,Excel打开的时候也会报错。
merge_cells(待合并的格子编号)
merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

拆分单元格的方法同上
unmerge_cells(待合并的格子编号)
unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

create_sheet(“新的sheet名”):创建一个新的sheet表

第11行,使用title修改sheet表的名字

remove(“sheet名”):删除某个sheet表
要删除某sheet表,需要激活这个sheet表,即:将其作为活动表(关于活动表的定义请看前面文章开头写的有)下面8~11行代码展示了原始活动表与手动更换活动表,第13行代码删掉活动表

背景知识
numpy与pandas
NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,我们需要利用Pandas进行Excel的合并

1.下面的代码生成了一个5行3列的包含15个字符的嵌套列表
(注意,第4行代码:15是等于35的,如果是15对应43,或者16对应5*3都会报错)
(注意,第5行代码,虽然5行3列是15个数据,但是可以指定数据从1开头,到16结束)

2.添加表头
使用pandas库的DataFrame来添加表头。关于打印的结果,把最左侧的一列去掉之后会发现结果很和谐,这是因为最左侧的一列代表行号。此时xx变量的类型是

xlsxwriter模块一般是和xlrd模块搭配使用的,
xlsxwriter:负责写入数据,
xlrd:负责读取数据。

1.创建一个工作簿

2.创建sheet表

3.写入数据

4. 如何将excel导入python

将txt
文件导入python代码:
import
pandas
as
pd
path='1.txt'
data=pd.read_csv(path,sep='\t')
想要”优雅“导入,建议使用pandas,matplotlib:
import
pandas
as
pd
data
=
pd.read_csv("aaa.csv")
data.columns
#查看表格有哪些列,可以看到有x,
y,
z列
data['x']
#查看x列
data['y']
#查看y列
data['z']
#查看z列
import
matplotlib.pyplot
as
plt
plt.bar(data['x'],
data['y'])
#画柱状图
plt.title('example')
#设置标题
plt.xlabel('x')
#横坐标加说明文字'x'
plt.ylabel('y')
#纵坐标加说明文字'y'
plt.show()
#显示图形

5. 怎样在Excel中使用python脚本

在Excel中准备调用的python代码:
def merge_sort_unique(lists):

s = set()

for L in lists:

s.update(L)

return sorted(s)
任意在本地建立一个目录,并保存这个代码并命名为Methods.py。我们一步步看看如何从Excel的工作表中如何调用这个脚本。打开Excel,填写一些数据以便提供python脚本处理,并保持这个表格于刚才的python脚本在同一目录下。你的工作表应该如下:

现在,备调用python脚本,创建一个新的模块(Insert | Mole)并敲以下VBA代码:


Function msu(lists As Range)

Set methods = PyMole("Methods", AddPath:=ThisWorkbook.Path)

Set result = PyCall(methods, "merge_sort_unique", PyTuple(lists.Value2))

msu = WorksheetFunction.Transpose(PyVar(result))

ExitFunction

EndFunction

6. python从excel中找到数据

一、安装xlrd库

可以下载xlrd库包到本地安装,也可以通过pip命令安装,这里我选择pip命令:

pip install xlrd

二、使用xlrd读取excel数据

具体详细的操作可以参考xlrd库操作说明文档,以下是两种读取excel数据的方法:

1、根据Excel中sheet名称读取数据:

4、读取excel中的文本或数值转换成了float的问题

有时Excel中的值为20,但读取出来的值却变成了20.0,这与我们想要的不大一致,特别是做UI自动化测试过程中需要下拉选择值时就完全选不出想要的选项了。目前我想到的是通过下面的语句来处理:

if isinstance(inputValue,float): #判断读取到的值是否为float
if inputValue==int(inputValue): #判断读取到的值与转成int后的值是否相等,如果相等则转成int
inputValue = int(inputValue)
inputValue = str(inputValue) #转成str

7. python怎么从excel中读取数据

  • #导入包

    import xlrd

    #设置路径

    path='C:\Users\jyjh\Desktop\datap.xlsx'

    #打开文件

    data=xlrd.open_workbook(path)

8. 如何把excel导入python并读取内容

读取excel的库很多pd库、xlrd库都可以。
例如

import xlrdfrom xlrd import xldate_as_tupleimport datetime'''xlrd中单元格的数据类型数字一律按浮点型输出,日期输出成一串小数,布尔型输出0或1,所以我们必须在程序中做判断处理转换成我们想要的数据类型0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error'''class ExcelData(): # 初始化方法 def __init__(self, data_path, sheetname): #定义一个属性接收文件路径 self.data_path = data_path # 定义一个属性接收工作表名称 self.sheetname = sheetname # 使用xlrd模块打开excel表读取数据 self.data = xlrd.open_workbook(self.data_path) # 根据工作表的名称获取工作表中的内容(方式①) self.table = self.data.sheet_by_name(self.sheetname) # 根据工作表的索引获取工作表的内容(方式②) # self.table = self.data.sheet_by_name(0) # 获取第一行所有内容,如果括号中1就是第二行,这点跟列表索引类似 self.keys = self.table.row_values(0) # 获取工作表的有效行数 self.rowNum = self.table.nrows # 获取工作表的有效列数 self.colNum = self.table.ncols # 定义一个读取excel表的方法 def readExcel(self): # 定义一个空列表 datas = [] for i in range(1, self.rowNum): # 定义一个空字典 sheet_data = {} for j in range(self.colNum): # 获取单元格数据类型 c_type = self.table.cell(i,j).ctype # 获取单元格数据 c_cell = self.table.cell_value(i, j) if c_type == 2 and c_cell % 1 == 0: # 如果是整形 c_cell = int(c_cell) elif c_type == 3: # 转成datetime对象 date = datetime.datetime(*xldate_as_tuple(c_cell,0)) c_cell = date.strftime('%Y/%d/%m %H:%M:%S') elif c_type == 4: c_cell = True if c_cell == 1 else False sheet_data[self.keys[j]] = c_cell # 循环每一个有效的单元格,将字段与值对应存储到字典中 # 字典的key就是excel表中每列第一行的字段 # sheet_data[self.keys[j]] = self.table.row_values(i)[j] # 再将字典追加到列表中 datas.append(sheet_data) # 返回从excel中获取到的数据:以列表存字典的形式返回 return datasif __name__ == "__main__": data_path = "ttt.xlsx" sheetname = "Sheet1" get_data = ExcelData(data_path, sheetname) datas = get_data.readExcel() print(datas)

9. 怎样在Excel中使用python脚本

一、使用工具:excel、python

二、使用方法和步骤:

1、先安装python2.7,然后配置环境变量,保证python在该环境中,打开开始菜单,找到计算机,然后右键单击它,选择【属性】

三、注意事项:切记不要勾选python,如果通过这种方式安装python,你原先安装的python就无法使用了。

10. 如何把图片的excel转为Python里面的字典

如何将Excel导入Python之中呢?很简单!做法如下:
首先我们要读取excel要用到xlrd模块,官网安装先上官网安装。
然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:
1、导入模块
import xlrd
2、打开Excel文件读取数据
data = xlrd.open_workbook('excel.xls')
3、获取一个工作表
① table = data.sheets()[0] #通过索引顺序获取② table = data.sheet_by_index(0) #通过索引顺序获取③ table = data.sheet_by_name(u'Sheet1')#通过名称获取
4、获取整行和整列的值(返回数组)
table.row_values(i)table.col_values(i)
5、获取行数和列数
table.nrowstable.ncols
6、获取单元格
table.cell(0,0).valuetable.cell(2,3).value
相对来说获取cell比较有用,相当于是给了一个二维数组,剩下的想怎么做都随着自己性子来。这全部归功于代码的简洁实用。若其中仍有若干小坑则花点时间自己琢磨下吧。以下列出的方法供人参考:
1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为 空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全 不同的串了。我的解决方法是给每个获取的字符串都加上strip()处理一下。效果良好2、还是字符串的匹配,在判断某个单元格中的字符串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,网络过一些解决 方案,但是都比较复杂或是没用。最后我采用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个 呢不能问题还没解决。
二、写excel表
写excel表要用到xlwt模块,可到官网下载
下载后大致的操作流程如下:
1、导入模块,复制代码代码 :
import xlwt
2、创建workbook,就是excel,这里只需要保存下,然后复制代码:
workbook = xlwt.Workbook(encoding = 'ascii')
3、接着创建表,然后复制代码:
worksheet = workbook.add_sheet('My Worksheet')
4、再往单元格内写入内容,复制代码代码:
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
5、最后保存,复制代码代码如下:
workbook.save('Excel_Workbook.xls')
以上便是小编对“如何将Excel导入Python之中呢?”的大致介绍,希望能有所帮助!

热点内容
唱吧上传自己的歌 发布:2025-01-11 19:57:35 浏览:658
数据的存储结构包括哪些 发布:2025-01-11 19:56:52 浏览:356
数据库新闻表 发布:2025-01-11 19:55:23 浏览:232
压缩气翻译 发布:2025-01-11 19:42:51 浏览:744
安卓如何正确卡枪 发布:2025-01-11 19:29:57 浏览:750
米家小相机存储卡 发布:2025-01-11 19:22:30 浏览:699
我的世界如何输地图密码 发布:2025-01-11 19:13:21 浏览:226
php表单注册 发布:2025-01-11 18:43:02 浏览:162
虚拟存储功能 发布:2025-01-11 18:43:01 浏览:889
ninjaandroid 发布:2025-01-11 18:26:10 浏览:527