标签: openpyxl

熊猫:查找excel文件中的工作表列表

新版本的Pandas使用以下界面加载Excel文件:

read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])
Run Code Online (Sandbox Code Playgroud)

但是,如果我不知道可用的床单怎么办?

例如,我正在使用以下表格的excel文件

数据1,数据2 ...,数据N,foo,bar

但我不知道N先验.

有没有办法从熊猫的excel文档中获取工作表列表?

python excel xlrd pandas openpyxl

106
推荐指数
5
解决办法
9万
查看次数

将DataFrame列表保存到多表Excel电子表格中

如何将DataFrame列表导出到一个Excel电子表格中?
国家文件to_excel:

注意
如果传递现有的ExcelWriter对象,则表单将添加到现有工作簿中.这可用于将不同的DataFrame保存到一个工作簿

writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()

在此之后,我想我可以编写一个函数,将一个DataFrame列表保存到一个电子表格中,如下所示:

from openpyxl.writer.excel import ExcelWriter
def save_xls(list_dfs, xls_path):
    writer = ExcelWriter(xls_path)
    for n, df in enumerate(list_dfs):
        df.to_excel(writer,'sheet%s' % n)
    writer.save()
Run Code Online (Sandbox Code Playgroud)

但是(带有两个小DataFrame的列表,每个都可以to_excel单独保存),会引发异常(编辑:删除跟踪):

AttributeError: 'str' object has no attribute 'worksheets'
Run Code Online (Sandbox Code Playgroud)

大概是我没有ExcelWriter正确地打电话,我应该怎么做才能做到这一点?

python pandas openpyxl

69
推荐指数
2
解决办法
5万
查看次数

有没有办法用pandas.ExcelWriter自动调整Excel列宽?

我被要求生成一些Excel报告.我目前正在为我的数据大量使用pandas,所以我当然希望使用pandas.ExcelWriter方法来生成这些报告.但是固定的列宽是个问题.

到目前为止我的代码很简单.假设我有一个名为'df'的数据框:

writer = pd.ExcelWriter(excel_file_path)
df.to_excel(writer, sheet_name="Summary")
Run Code Online (Sandbox Code Playgroud)

我正在查看pandas代码,我真的没有看到任何设置列宽的选项.宇宙中有没有一个技巧可以使列自动调整到数据?或者我可以在xlsx文件之后做些什么来调整列宽?

(我正在使用OpenPyXL库,并生成.xlsx文件 - 如果这有任何区别.)

谢谢.

python excel pandas openpyxl

68
推荐指数
10
解决办法
4万
查看次数

openpyxl - 调整列宽大小

我有以下脚本将CSV文件转换为XLSX文件,但我的列大小非常窄.每次我用鼠标拖动它们来读取数据.有人知道如何设置列宽openpyxl吗?

这是我正在使用的代码.

#!/usr/bin/python2.6
import csv
from openpyxl import Workbook
from openpyxl.cell import get_column_letter

f = open('users_info_cvs.txt', "rU")

csv.register_dialect('colons', delimiter=':')

reader = csv.reader(f, dialect='colons')

wb = Workbook()
dest_filename = r"account_info.xlsx"

ws = wb.worksheets[0]
ws.title = "Users Account Information"

for row_index, row in enumerate(reader):
    for column_index, cell in enumerate(row):
        column_letter = get_column_letter((column_index + 1))
        ws.cell('%s%s'%(column_letter, (row_index + 1))).value = cell

wb.save(filename = dest_filename)
Run Code Online (Sandbox Code Playgroud)

python openpyxl

54
推荐指数
8
解决办法
9万
查看次数

如何使用Pandas在现有的Excel文件中保存新工作表?

我想使用excel文件来存储用python详细说明的数据.我的问题是我无法将图纸添加到现有的Excel文件中.在这里,我建议使用示例代码来解决此问题

import pandas as pd
import numpy as np

path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)

x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)

writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df1.to_excel(writer, sheet_name = 'x1')
df2.to_excel(writer, sheet_name = 'x2')
writer.save()
writer.close()
Run Code Online (Sandbox Code Playgroud)

此代码将两个DataFrame保存为两个表,分别名为"x1"和"x2".如果我创建两个新的DataFrame并尝试使用相同的代码添加两个新工作表'x3'和'x4',原始数据将丢失.

import pandas as pd
import numpy as np

path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)

x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)

writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df3.to_excel(writer, sheet_name = 'x3')
df4.to_excel(writer, sheet_name …
Run Code Online (Sandbox Code Playgroud)

python pandas openpyxl xlsxwriter

51
推荐指数
7
解决办法
7万
查看次数

是否可以在不将整个文档加载到内存中的情况下获取Excel文档的行数?

我正在处理一个处理大量Excel 2007文件的应用程序,而我正在使用OpenPyXL来完成它.OpenPyXL有两种不同的读取Excel文件的方法 - 一种是"普通"方法,其中整个文档一次加载到内存中,另一种方法是使用迭代器逐行读取.

问题是,当我使用迭代器方法时,我没有得到任何文档元数据,如列宽和行/列数,我真的需要这些数据.我假设这些数据存储在靠近顶部的Excel文档中,因此不必将整个10MB文件加载到内存中以访问它.

那么,有没有办法获得行/列数和列宽,而无需先将整个文档加载到内存中?

python openpyxl

44
推荐指数
3
解决办法
9万
查看次数

在Openpyxl中设置样式

我需要在Openpyxl中设置样式的建议.

我看到可以设置单元格的NumberFormat,但我还需要设置字体颜色和属性(粗体等).有一个style.py类,但似乎我无法设置单元格的样式属性,我真的不想开始修改openpyxl源代码.

有没有人找到解决方案?

python excel xlsx openpyxl

42
推荐指数
6
解决办法
6万
查看次数

从openpyxl获取工作表名称

我有一个中等大小的xlsx文件(大约14 MB),OpenOffice挂起试图打开它.我按照本教程尝试使用openpyxl来阅读内容.代码段如下:

 from openpyxl import load_workbook
 wb = load_workbook(filename = 'large_file.xlsx', use_iterators = True)
 ws = wb.get_sheet_by_name(name = 'big_data') 
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道工作表名称,而Sheet1/Sheet2 ..等不起作用(返回NoneType对象).我找不到一个文档告诉我如何使用openpyxl获取xlsx文件的工作表名称.谁能帮我?

python excel openpyxl

37
推荐指数
3
解决办法
6万
查看次数

如何使用python的openpyxl模块访问单元格的实际值

我遇到了这个问题,因为cell.value函数返回用于单元格的公式,我需要在操作后提取Excel提供的结果.

谢谢.


好吧,我想我找到了解决办法; 显然要访问cell.internal值,你必须先在工作表中使用iter_rows(),这是一个"RawCell"列表.

for row in ws.iter_rows():

    for cell in row:

        print cell.internal_value
Run Code Online (Sandbox Code Playgroud)

python cell openpyxl

36
推荐指数
4
解决办法
7万
查看次数

读取Excel单元格值而不是计算它的公式-openpyxl

我正在使用openpyxl来读取单元格值(excel addin-webservice更新此列.)

我已经使用data_only = True但它没有显示当前单元格值,而是它是上次Excel读取工作表时存储的值.

wbFile = openpyxl.load_workbook(filename = xxxx,data_only=True)
wsFile = wbFile[c_sSheet]
Run Code Online (Sandbox Code Playgroud)

我如何读取单元格的实际值?

python openpyxl

35
推荐指数
6
解决办法
5万
查看次数

标签 统计

openpyxl ×10

python ×10

excel ×4

pandas ×4

cell ×1

xlrd ×1

xlsx ×1

xlsxwriter ×1