2016-10-05 40 views
2

私はExcelからコピーされたGoogleスプレッドシートを持っています。それに問題があります。 これは、これは私のコードGoogle Apps ScriptでGoogleスプレッドシートのセルからURLを取得するにはどうすればよいですか?

function myFunction() { 
    cel = SpreadsheetApp.getActiveSpreadsheet().getActiveCell() 
    Logger.log(cel.getFormula()) 
    Logger.log(cel.getValue()) 
} 

であり、これは私のログである私の文書https://docs.google.com/spreadsheets/d/1Ok_phu5OXtvKHLj3MLa7N3WV2qBdMWRz8dLHnTqjHrc/edit?usp=sharing

cell with a hyperlink without a formula

です:どのように

[16-10-05 13:39:59:628 EEST] 
[16-10-05 13:39:59:629 EEST] RU: VTB Arena - Park and Hotel 

そして私はURL(https://na3.salesforce.com/0065000000a1b8p)を取得する必要がありますそれをしてもいいですか?

+0

関連:http://stackoverflow.com/questions/13847007/how-can-i-retrieve-the-hyperlink-from-a-data-cell-in-google-apps-script –

答えて

-1

はこれを試してみてください:私は手動でリンクとしてそれを追加したとき

var url = /"(.*?)"/.exec(cel.getFormulaR1C1())[1]; 
Logger.log(url); 

それはURLを引っ張りました。

私は以下の私私のテストに使用注:この時点でのGoogle Appsスクリプトのスプレッドシート・サービスは、細胞リッチテキストコンテンツのプロパティを取得することができません

var dataSheet = CentralSS.getSheetByName(CENTRAL_DATAFILES_SHEETNAME); 
    var range = dataSheet.getRange("E2"); 
    var url = /"(.*?)"/.exec(range.getFormulaR1C1())[1]; 
+0

これは、プロパティの缶読まないでください。 –

+0

変数を設定した直後にデバッグとブレークを実行すると、URLにリンクが含まれます。何か不足していますか? –

+0

コードは、ハイパーリンク機能を持つ数式を持つセルでは動作しますが、OPによって提示されるケースでは機能しません。 –

1

を用いることにより単なるテキストgetValue()メソッドgetFormula()、getNote()などの他のメソッドは対応するセルプロパティを取得できますが、リンクのURLは含まれません。

Googleスプレッドシートでは、URLを手動で取得することで回避できます。プログラム的には、ファイルをGoogleスプレッドシート形式に変換する前にExcelファイルのVBAを使用してハイパーリンクを取得する方法もあります。詳細は、answerCan I use an excel formula to extract the link location of a hyperlink in a cell?を参照してください。

0

Googleスプレッドシートをウェブに公開してから、htmlをBS4で解析してURLを取得するのが最善の方法だと思います。

関連する問題