xlsxスプレッドシートのハイパーリンクには次のコードスニペットを使用していました。openpyxlでハイパーリンクが動作しない
- (スクリプトが実行されている)現在のフォルダ内のファイルを検索するには
- ... H2、H3、H4からのxlsxからファイル名を読み取り、
- 既存のコンテンツと検索パスでハイパーリンクを作成します。 。
問題は、事前に
おかげで作業しているopenpyxlから.hyperlinkとさえ= HYPERLINK( "パス"、 "実ファイル名")と書いていないです。
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);
が見えます。 openpyxlは式を評価しませんが、セルのハイパーリンクはサポートしています。 –
@CharlieClarkあなたがコメントしたスクリプト#ws.cell(行= RowNum、列= ColumnNum)を見るなら.hyperlink = link;もともとOpenpyXL経由のハイパーリンクに使用されていたので、私は他の代替メトーに行きました。 – Lucky
@Luckyは代わりに 'xlsxwriter'を使用していますか?ありがとう。 – alecxe