如何使用python编写excel注释?

时间:2012-03-15 23:06:50

标签: java python excel spreadsheet

我是一名python程序员,我必须在excel电子表格中大量插入笔记。有没有人知道使用python脚本容易/实用的方法? (可能是一个java脚本,如果有例子的话)。

它可以在.xls,.xlsx或.ods上,并且可以在任何操作系统中(虽然我是Linux用户,所以如果我可以将我的解决方案移植到linux,那就更好了。)< / p>

我已经尝试过pyl的xlwt模块并使用csv搜索了一些,但没有成功。

3 个答案:

答案 0 :(得分:1)

这是一些python代码,它使用Windows上的pywin32包启动Excel,打开电子表格并在单元格A1中创建注释:

>>> import win32com.client
>>> xl = win32com.client.Dispatch("Excel.Application")
>>> xl.Visible = 1
>>> wb = xl.Workbooks.Open(r'<full path of excel spreadsheet>')
>>> sheet = wb.ActiveSheet
>>> sheet.Range("A1").AddComment()
<COMObject AddComment>
>>> sheet.Range("A1").Comment.Visible = True
>>> sheet.Range("A1").Comment.Text("Hello World")
u'Hello World'
>>> wb.SaveAs(r'<full path of modified spreadsheet>')
>>> wb.Close()
>>> xl.Quit()

我在Windows 7上使用Excel 2007使用python 2.7.2运行此代码并使用Excel 2007,它对我有效。

答案 1 :(得分:1)

如果您需要使用公式(以及包括注释)将大量数据导出到 Excel,您可以使用名为可移植电子表格 (pip install portable-spreadsheet) 的库。请参阅包含用例的文档。它遵循以下逻辑:

import portable_spreadsheet as ps
sheet = ps.Spreadsheet.create_new_sheet(5, 5)
# Set values
sheet.iloc[0, 0] = 25  # Set A1
sheet.iloc[1, 0] = sheet.iloc[0, 0]  # reference to A1
# Export to Excel
sheet.to_excel('output/sample.xlsx')

它的工作方式与 Pandas Dataframe 类似。

答案 2 :(得分:0)

您可以为此使用 openpyxl

from openpyxl import Workbook
from openpyxl.comments import Comment
wb = Workbook()

ws = wb.active

comment = Comment("This is a comment!", "Author")

# comment.width = 

ws['A1'].comment = comment

wb.save('CommentTest.xlsx')

wb.close()