From e484e984d2095094f3d495fe31597e05e2811a60 Mon Sep 17 00:00:00 2001 From: fenrir Date: Mon, 26 Jun 2023 13:10:56 +0900 Subject: [PATCH 1/2] Add link in "Copy To MD" if cell in Excel has hyperlink --- .../CopyFromExcelToMarkdownAddIn/ThisAddIn.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs b/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs index 75926c3..3fe5f7f 100644 --- a/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs +++ b/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs @@ -170,7 +170,15 @@ private void CopyToMarkdown(CommandBarButton ctrl, ref bool cancelDefault) var cell = (Range)range.Cells[1, x]; resultBuffer.Append("|"); - resultBuffer.Append(cell.FormatText()); + if (cell.Hyperlinks.Count > 0) + { + resultBuffer.Append("[").Append(cell.FormatText()).Append("]") + .Append("(").Append(cell.Hyperlinks[1].Address).Append(")"); + } + else + { + resultBuffer.Append(cell.FormatText()); + } switch ((int)cell.HorizontalAlignment) { case AlignmentLeft: @@ -202,7 +210,15 @@ private void CopyToMarkdown(CommandBarButton ctrl, ref bool cancelDefault) var cell = (Range)range.Cells[y, x]; resultBuffer.Append("|"); - resultBuffer.Append(cell.FormatText()); + if (cell.Hyperlinks.Count > 0) + { + resultBuffer.Append("[").Append(cell.FormatText()).Append("]") + .Append("(").Append(cell.Hyperlinks[1].Address).Append(")"); + } + else + { + resultBuffer.Append(cell.FormatText()); + } } resultBuffer.Append("|"); resultBuffer.Append(Environment.NewLine); From c037955f5cd53ef9cab60600e6a0fab8bed041f0 Mon Sep 17 00:00:00 2001 From: fenrir Date: Mon, 26 Jun 2023 23:19:39 +0900 Subject: [PATCH 2/2] Add link in "Paste From MD" if cell value is in [text](link) format --- .../CopyFromExcelToMarkdownAddIn/ThisAddIn.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs b/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs index 3fe5f7f..0cb3cd9 100644 --- a/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs +++ b/CopyFromExcelToMarkdownAddIn/CopyFromExcelToMarkdownAddIn/ThisAddIn.cs @@ -1,5 +1,6 @@ using System; using System.Text; +using System.Text.RegularExpressions; using System.Windows.Forms; using Microsoft.Office.Core; using Microsoft.Office.Interop.Excel; @@ -107,7 +108,14 @@ private void CopyFromMarkdown(CommandBarButton ctrl, ref bool canceldefault) { var cell = row[j]; var activeSheetCell = (Range)activeSheet.Cells[range.Row + i, range.Column + j]; - activeSheetCell.Value2 = cell.Value + var value = cell.Value; + var match = Regex.Match(value, "\\[([^\\]]+)\\]\\(([^\\)]+)\\)"); + if (match.Success) + { + activeSheet.Hyperlinks.Add(activeSheetCell, match.Groups[2].Value); + value = value.Replace(match.Value, match.Groups[1].Value); + } + activeSheetCell.Value2 = value .Replace("
", "\n") .Replace("
", "\n") .Replace("|", "|");