python - 超链接无法通过 openpyxl 工作

标签 python excel openpyxl

我在 xlsx 电子表格中使用以下代码片段进行超链接。

  1. 从 H2、H3、H4 中读取 xlsx 的文件名...
  2. 在当前文件夹(脚本运行的位置)中搜索文件
  3. 使用现有内容的搜索路径创建超链接。

问题是来自 openpyxl 的 .hyperlink 甚至不能用 =HYPERLINK("Path", "Real File Name") 写

提前致谢。

import os
import openpyxl

ColumnNum = 6
RowNum = 2
rootPath = ""

def FindPathofFile(filename):
  for root, dirs, files in os.walk(rootPath):
      for file in files:
          if filename in file:
               return(os.path.join(root, file))

rootPath =input("Enter the Parent Path, Where the html files are present\n");
SpreadSheetName = input("Enter the SwCTS spread sheet name, in which Hyperlinks to be created\n");
wb = load_workbook(SpreadSheetName);
ws = wb.get_sheet_by_name(input("Enter the SwCTS Tab Name, in which Hyperlinks to be created\n"));
columnname = "H"+str(RowNum);
valueofCell = ws[columnname].value;
while True:
  if valueofCell:
    link = FindPathofFile(valueofCell);
    print ('=HYPERLINK("'+str(link)+'","'+str(valueofCell)+'")');
    #ws.cell(row=RowNum, column=ColumnNum).hyperlink = link;
    ws.cell(row=RowNum, column=ColumnNum).value ='=HYPERLINK("'+str(link)+'","'+str(valueofCell)+'")';
    RowNum = RowNum + 1;
    columnname = "H"+str(RowNum);
    valueofCell = ws[columnname].value;
  else:
    break;
wb.save(SpreadSheetName);

最佳答案

好吧,我可以做到这一点。虽然没有直接的方法来构建超链接,但在您的情况下我们可以这样做。事实上,我没有检查你程序的完整性。我相信你知道你还在做什么。我能够使用下面的代码建立一个指向现有文件的超链接。我看到我所拥有的和你所拥有的之间在逻辑上只有很小的差异。即缺少“样式”属性。

wb=openpyxl.Workbook()
s = wb.get_sheet_by_name('Sheet')
s['B4'].value = '=HYPERLINK("C:\\Users\\Manoj.Waghmare\\Desktop\\script.txt", "newfile")'
s['B4'].style = 'Hyperlink'
wb.save('trial.xlsx')

将样式属性称为“超链接”是关键。我拥有的所有其他代码对您来说可能并不重要。否则 style 属性的值为“Normal” 奇怪的是即使没有样式属性,我们工作的超链接也只是缺少样式!当然。虽然奇怪,但我见过更奇怪的东西。希望这会有所帮助。

关于python - 超链接无法通过 openpyxl 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41160818/

相关文章:

python - 如何在 VSCode 中启用 Pylint?

python - 如何将具有多索引列的 Pandas 数据框导出到 Excel,其中一个级别的列名未合并,另一级别的列名合并?

c# - 在 C# 中列出 excel 工作簿连接

html - 创建 HTML 表格并在保存样式的 Excel 中打开它

c# - 将 Image 对象作为参数从 C# 传递到 Python

python - 删除()一个实例

excel - Perl Spreadsheet::ParseExcel 无法解析并返回 undef

python - 尝试设置单元格字体颜色时,“单元格”对象没有属性 'styles'

python - openpyxl如何在工作表中写入列表数据?

python - 如何使用 python 脚本将文件上传到 Sharepoint 站点