【问题标题】:Any ideas on how to simply generate a HTML page for every line in a csv file?关于如何简单地为 csv 文件中的每一行生成 HTML 页面的任何想法?
【发布时间】:2015-08-05 13:12:51
【问题描述】:

我为需要将其(模板)作为静态文件分发给大约 50 个客户的客户构建了一个 HTML 电子邮件模板。每个客户都需要一定程度的个性化(即徽标会改变,链接将是客户特定的等)。我在自定义区域中放置占位符没有问题,我会将数据从客户端转换为 csv 或类似格式。

我的问题是 - 个性化过程是否可以自动化,以便使用 csv 文件中的数据生成 50 个唯一的 HTML 文件?如此有效地合并邮件,但最终产品是 50 个静态且唯一的 HTML 文件而不是电子邮件?还是我应该硬着头皮手动编写 50 页代码?

    <csv>

            IMG,Text,UniqueURL
            Customer1Logo,Customer1Text,URL1
            Customer2Logo,Customer2Text,URL2
            Customer3Logo,Customer3Text,URL3<csv>

    <body>
    <table class="body">
      <tr>
        <td class="center" align="center" valign="top">
          <center>

            <img src="DataFromTableColumn1">
            <p>DataFromTableColumn2</p>
<a href="http://www.genericlink.com.au/DataFromTableColumn3">Link to Company</a>
          </center>
        </td>
      </tr>
    </table>
  </body>

【问题讨论】:

  • 欢迎来到 Stackoverflow。分享你尝试过的代码。

标签: html csv automation mailmerge personalization


【解决方案1】:

您可以为此使用任何类型的编程或脚本语言。这只是循环和字符串替换的组合:

  • 在您的模板中,为要从 CSV 替换的值定义一个占位符
  • 遍历 CSV 并...

    • 加载模板
    • 用 CSV 行中的相应列替换模板
    • 将模板保存为自定义版本(例如,使用客户名称/ID 作为文件名的一部分。

$path = "D:\myData.csv";

Import-Csv $path | Foreach-Object { 

    # TODO: load template

    foreach ($property in $_.PSObject.Properties)
    {
        # TODO: replace template strings using $property.Value
    } 

}

【讨论】:

  • 谢谢 - 我会看看我能做什么,虽然不是程序员可能是一个绊脚石。
  • 这是一个程序员页面,所以您应该尝试选择一种语言 ;-) 假设您来自 Windows 背景,您可以使用 PowerShell 轻松做到这一点。将更新后的答案作为起点,对于 ToDo,Google 将成为您的朋友 ;-)
  • 哈哈细心的美联储也有感觉,老实说,到目前为止,我从来没有真正需要深入了解一门语言。显然,在这种情况下除外。我确实尝试了谷歌的东西,但现在可能会更快地手动完成。并感谢您提供更新的答案...会给它一个裂缝。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2022-01-26
  • 1970-01-01
  • 2016-07-11
  • 2019-05-22
相关资源
最近更新 更多