python的xlwt模块无法使用函数write_formula去引用其它sheet,还有其他办法能sheet里引用其它sheet吗
时间: 2023-08-17 10:05:27 浏览: 238
是的,xlwt模块的write_formula函数无法直接引用其他sheet中的单元格,但可以使用write_rich_text方法来实现。将要引用的单元格的地址作为一个字符串传递给write_rich_text方法,然后将该字符串格式化为超链接形式,如下所示:
```python
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
worksheet1 = workbook.add_sheet('Sheet1')
worksheet2 = workbook.add_sheet('Sheet2')
# 在Sheet1中写入一个公式,引用Sheet2中的单元格
formula = 'HYPERLINK("Sheet2!B2", "Link to Sheet2 B2")'
worksheet1.write_rich_text(0, 0, xlwt.Formula(formula))
workbook.save('output.xls')
```
在上面的例子中,我们在Sheet1中写入了一个公式,该公式引用了Sheet2中的B2单元格。注意,使用write_formula方法将无法实现这一点,因此我们使用了write_rich_text方法,并将公式字符串格式化为超链接形式。
相关问题
ws用xlwt给加SUM函数,提取sheet名包含关键字‘工资’的ws求和
可以通过以下步骤实现:
1. 使用 xlrd 打开 Excel 文件,获取所有工作表的名称。
2. 遍历所有工作表的名称,如果名称中包含关键字“工资”,则使用 xlrd 打开该工作表,获取工资列的值。
3. 使用 xlwt 创建一个新的 Excel 文件,并使用 xlwt.Worksheet 对象创建一个新的工作表。
4. 在新的工作表中,使用 xlwt.Formula 对象创建 SUM 函数,将工资列的值相加。
5. 将 SUM 函数写入新工作表的指定单元格中。
6. 保存新的 Excel 文件。
下面是示例代码:
```python
import xlrd
import xlwt
# 打开原始 Excel 文件
workbook = xlrd.open_workbook('original.xls')
# 获取所有工作表的名称
sheet_names = workbook.sheet_names()
# 创建新的 Excel 文件
new_workbook = xlwt.Workbook()
new_sheet = new_workbook.add_sheet('Summary')
# 遍历所有工作表的名称
for sheet_name in sheet_names:
if '工资' in sheet_name:
# 打开当前工作表
sheet = workbook.sheet_by_name(sheet_name)
# 获取工资列的值
salary_col = sheet.col_values(1)[1:]
# 创建 SUM 函数
sum_formula = xlwt.Formula('SUM(B2:B{})'.format(len(salary_col) + 1))
# 将 SUM 函数写入新工作表的指定单元格中
new_sheet.write(0, 0, sheet_name)
new_sheet.write(0, 1, sum_formula)
# 保存新的 Excel 文件
new_workbook.save('summary.xls')
```
用xlwt给ws填加公式
xlwt库可以用于向Excel文件中的单元格添加公式。可以使用以下代码向工作表ws中的单元格添加公式:
```python
import xlwt
# 创建工作簿
wb = xlwt.Workbook()
# 创建工作表
ws = wb.add_sheet('Sheet1')
# 向单元格A1中添加数值
ws.write(0, 0, 10)
# 向单元格B1中添加数值
ws.write(0, 1, 20)
# 向单元格C1中添加公式
ws.write(0, 2, xlwt.Formula('A1+B1'))
# 保存工作簿
wb.save('example.xls')
```
在上面的代码中,使用了`xlwt.Formula()`函数将公式添加到单元格`C1`中。在本例中,添加的公式是`A1+B1`,它将单元格`A1`和`B1`中的值相加。当Excel文件打开时,将自动计算公式并在单元格中显示结果。
注意,使用xlwt库的公式功能需要在单元格中使用Excel语法。如果您不熟悉Excel语法,可以在Excel中手动添加公式,然后将其复制到Python代码中。
阅读全文