Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Openpyxl错误地读取xslx文件_Python_Pandas_Openpyxl - Fatal编程技术网

Python Openpyxl错误地读取xslx文件

Python Openpyxl错误地读取xslx文件,python,pandas,openpyxl,Python,Pandas,Openpyxl,我正在使用这段代码加载xslx文件,我收到了超过1k的1行。有人知道怎么处理吗 import openpyxl import pandas as pd wb= openpyxl.load_workbook(r'path') df = pd.DataFrame(wb) print(df) 结果: 0  , , [1行x 1452列]从这里直接获取代码: 输出: Column_A Column_B 0 100 Abc 1 200 Def 2

我正在使用这段代码加载xslx文件,我收到了超过1k的1行。有人知道怎么处理吗

import openpyxl
import pandas as pd

wb= openpyxl.load_workbook(r'path')
df = pd.DataFrame(wb)
print(df)

结果: 0  , ,
[1行x 1452列]

从这里直接获取代码:

输出:

   Column_A Column_B
0       100      Abc
1       200      Def
2       300      Ghj
3       400      Ijk
Name of sheet:  Sheet1
   Column_A Column_B
0       100      Abc
1       200      Def
2       300      Ghj
3       400      Ijk
Name of sheet:  Sheet2
   Column_A Column_B
0       500      lmn
1       600      opq
2       700      rst
3       800      uvw
如果要循环浏览多个图纸,可以按如下方式修改:

import openpyxl
import pandas as pd

wb = openpyxl.load_workbook(r'path.xlsx')
for ws in wb.sheetnames:
    print("Name of sheet: ", ws)
    ws = wb[ws]
    data = ws.values
    columns = next(data)[0:]
    df = pd.DataFrame(data, columns=columns)
    print(df)
输出:

   Column_A Column_B
0       100      Abc
1       200      Def
2       300      Ghj
3       400      Ijk
Name of sheet:  Sheet1
   Column_A Column_B
0       100      Abc
1       200      Def
2       300      Ghj
3       400      Ijk
Name of sheet:  Sheet2
   Column_A Column_B
0       500      lmn
1       600      opq
2       700      rst
3       800      uvw

你用openpyxl而不是pandas直接读取它吗?请尝试改用..?我无法在此计算机上安装xlrd。@Michał你试图读取的是工作簿本身,而不是数据。Excel工作簿包含多个工作表,您要加载的数据可能不是从A1开始的-可能有隐藏的行、标题、标题等,用“是”表示有效!我是否需要始终在ws=wb['Sheet_name']中输入准确的工作表名称,或者它可以以某种方式自动执行?@MichałExcel文件包含多个工作表,并且数据可以显示在工作表本身的任何位置。DataFrame猜不出该做什么read@Michał您可以从工作簿中获取工作表名称,然后使用相同的代码使其循环。我的意思是,我想读取数据库中的5个excel文件,然后再处理它们。它们里面只有一张纸,所以我问是否有自动获取第一张纸名的方法。@Michał我在代码中添加了一个循环版本,其中不需要该纸的实际名称。如果该文件只包含一张图纸,那么它将只遍历该文件一次。