我试图在数据列中找到最后一行。替换vba函数:LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
我正在尝试此操作,但这会拉入Excel中的所有行。我如何才能获得最后一行。
from xlwings import Workbook, Range
wb = Workbook()
print len(Range('A:A'))
Run Code Online (Sandbox Code Playgroud) 我的团队使用 Sypder (Python) 中的 xlwings 将 Excel 表格转换为 CSV 格式。然而,当过滤表时,这会改变 CSV 输出。是否有 xlwings 命令可以清除活动 Excel 工作表中的过滤器?
VBA 中的类似命令是(来自Excel 2013 VBA 清除所有过滤器宏):
Sub Macro1()
Cells.AutoFilter
End Sub
Run Code Online (Sandbox Code Playgroud) 我试图xlwings从我的一些 Python 代码中使用Excel 接口,但不幸的是,只找到了有关访问/重新格式化现有Excel 表格的stackoverflow 线程或文档,而不是从头开始创建新表格。
编辑:根据 David Zemen 的回答添加的解决方案(此处提供了 ListObject 属性的其他 getter 和 setter 。
import xlwings
df = ... # initialising some pandas DataFrame
book = xlwings.Book()
ws = book.sheets.active
ws.range("A1").options(index=False).value = df
# TODO: Create table
# downside: does not seem to be possible to define multiple tables
# within a Sheet (based on explicit ranges)
tbl = ea_sheet.api.ListObjects.Add(1)
# TODO: Set the name/formatting of the table
tbl.DisplayName = "tabname" # …Run Code Online (Sandbox Code Playgroud) 我喜欢检查如何冻结 XLWings 中的窗格。
希望熟悉 XLWings 的人能够提供帮助。
我已尝试以下操作,但出现错误: pywintypes.com_error: (-2147352567, '发生异常。', (0, None, None, None, 0, -2147352565), None)
app1 = xw.apps
wb = app1.active.books.active
wb.api.Windows(6).FreezePanes = True
Run Code Online (Sandbox Code Playgroud)
而且我无法在网上找到其他代码。
XLWings 是否允许我通过表和列名称与 Excel 表格(在 Excel 2007 及更高版本中通过菜单或 ctrl+t 提供)进行交互?这确实存在于年轻的开源项目 Pyvot ( https://pypi.python.org/pypi/Pyvot ) 中。我希望 XLWings 现在可以实现这一点,或者 XLWings 将添加该功能,特别是因为这个开源项目可以作为模型使用。
这是来自https://pythonhosted.org/Pyvot/tutorial.html的示例。“Pyvot 专门识别表和自动过滤器中的列名称。Pyvot 将在工作簿中的所有表中搜索给定的列名称。” 下面的示例会将“城市”列中可见单元格的值返回到列表。
import xl
wb = xl.Workbook(r"c:\temp\cities.xlsx")
wb.get("City").get() #get the column named City
Run Code Online (Sandbox Code Playgroud) 有什么方法可以避免在使用xlwings时打开文件?
我读到一年前有更新,但我不知道问题是否已解决。
如何从 Excel 中选择没有标题的整列?
例如,当我尝试以下代码时,它会选择包括标题在内的整个列:
将 xlwings 导入为 xw
wb = xw.Book.caller() wb.sheets[0].range('A:A').options(ndim=1).value
如何选择整个 A 列而不包括标题?我基本上想使用 xlwings 从列的每个单元格接收值,从该列的开头到最后一个值(不包括标题)。
请指教。
谢谢
如何格式化xlwings中的表格?例如,如果我想将 Excel 样式“浅蓝色,表格样式浅 2”添加到 xlwings 中的 Range 对象。
由于它不在 xlwings 文档中,我相信它看起来像这样(在连接到 wb 和所有内容之后):
xw.Range('A1').api. #Something goes here
Run Code Online (Sandbox Code Playgroud)
作为后续问题,如何了解在获取 api 对象后您有哪些选项?我看到这样做的唯一地方是在其他问题中,这里基本上只是对此类问题的答案的汇编。
(这样我们就不用一直打扰你了,菲利克斯;))
我正在尝试xlwings在我的 Ubuntu 机器上安装模块,但失败如下
pip3 install xlwings
Collecting xlwings
Using cached https://files.pythonhosted.org/packages/cc/c9/6bb1849dbee6e8a40beb9a0d21df9787bee45cda1d0bb575a0cd388dd260/xlwings-0.15.3.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-u90aes_a/xlwings/setup.py", line 33, in <module>
raise OSError("currently only Windows and OSX are supported.")
OSError: currently only Windows and OSX are supported.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-u90aes_a/xlwings/
Run Code Online (Sandbox Code Playgroud)
这个错误的解决方法是什么?Ubuntu 不支持 xlwings 吗?我也尝试像下面一样手动安装,但也失败了。
cd xlwings
python setup.py install
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激。
2019 年 7 月 10 …
我尝试使用以下代码向单元格 A1 添加注释,这会导致 jupyter 笔记本冻结。重新启动时,我注意到 A1 上插入了一条空注释。
sht.range("A1").api.AddComment="My comment"
Run Code Online (Sandbox Code Playgroud)
如何向单元格添加注释?实际的VBA是
sht.Range("A1").AddComment "My comment"