У меня есть скрипт, который берет ошибки из TFS и строит таблицу с соответствующими заголовками. Скрипт считывает из XML 2 идентификатора запроса, создает 2 таблицы, а затем отправляет их по электронной почте. Скрипт работает, но мне нужно добавить пробел между таблицами, сейчас они слипаются. Я пробовал много вещей, таких как br и div, но ничего не помогло. Я скопирую только соответствующий код для таблиц. Я не хочу менять или улучшать таблицу, поэтому помогите мне добавить пробел между таблицами.
$HtmlTable = "<table border='1' align='Left' cellpadding='2' cellspacing='0' style='color:black;font-family:arial,helvetica,sans-serif;text-align:left;'>
<tr style ='font-size:14px;font-weight: normal;background: #FFFFFF'>
<th align=left><b>Version</b></th>
<th align=left><b>Severity</b></th>
<th align=left><b>Title</b></th>
<th align=left><b>State</b></th>
</tr>"
$HtmlTable += "<tr style='font-size:14px;background-color:#FFFFFF'>
<td>" + $CloudVersion + "</td>
<td>" + $Bug_Severity + "</td>
<td>" + $Bug_Title + "</td>
<td>" + $Bug_State + "</td>
</tr>"
$HtmlTable += "</table>"
$Htmls += $HtmlTable
function Print ($Htmls) {
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject('Outlook.Application')
$Mail = $Outlook.CreateItem(0)
foreach ($html in $Htmls) {
$mail.HTMLBody += $html
}
$Mail.Display()
}
Можете пожалуйста написать как это сделать?
Конечно, просто добавьте эту строку <table border='1' align='Left' cellpadding='2' cellspacing='0' style='color:black;font-family:arial,helvetica,sans-serif;text-align:left; margin: 15px'>, а если вы хотите добавить только CSS, добавьте эту margin: 15px в table.
Общий совет: старайтесь избегать использования оператора присваивания увеличения (+=) для построения коллекции или строки и используйте вместо этого конвейер PowerShell, что-то вроде: $mail.HTMLBody = $Htmls -Join '<br /><br /><br />'
margin-bottom: 20px; можно добавить только место внизу. также работает хорошо.






вы могли бы сделать что-то вроде этого, обернуть таблицу в гибкий div с интервалом в сделать так, чтобы это выглядело аккуратно.
$HtmlTable = "<div style = "display: flex; padding: 1rem 0.5rem"> <table border='1' align='Left' cellpadding='2' cellspacing='0' style='color:black;font-family:arial,helvetica,sans-serif;text-align:left;'>
<tr style ='font-size:14px;font-weight: normal;background: #FFFFFF'>
<th align=left><b>Version</b></th>
<th align=left><b>Severity</b></th>
<th align=left><b>Title</b></th>
<th align=left><b>State</b></th>
</tr>"
$HtmlTable += "<tr style='font-size:14px;background-color:#FFFFFF'>
<td>" + $CloudVersion + "</td>
<td>" + $Bug_Severity + "</td>
<td>" + $Bug_Title + "</td>
<td>" + $Bug_State + "</td>
</tr>"
$HtmlTable += "</table></div>"
скажите пожалуйста, сработало это или нет.
Спасибо, но между столами все еще нет места.
последняя функция, которую вы распечатали, где она отображает почту?
Скриншот добавлен
Итак, чтобы создать пространство между столом, можно использовать margin. В приведенном ниже коде я добавил margin вокруг таблицы.
Вы можете скопировать приведенный ниже код и опробовать его в своем проекте. Надеюсь, это помогло, спасибо.
$HtmlTable = "<table border='1' align='Left' cellpadding='2' cellspacing='0' style='color:black;font-family:arial,helvetica,sans-serif;text-align:left; margin: 15px;'>
<tr style ='font-size:14px;font-weight: normal;background: #FFFFFF'>
<th align=left><b>Version</b></th>
<th align=left><b>Severity</b></th>
<th align=left style = "min-width: 70vh;"><b>Title</b></th>
<th align=left><b>State</b></th>
</tr>"
$HtmlTable += "<tr style='font-size:14px;background-color:#FFFFFF'>
<td>" + $CloudVersion + "</td>
<td>" + $Bug_Severity + "</td>
<td>" + $Bug_Title + "</td>
<td>" + $Bug_State + "</td>
</tr>"
$HtmlTable += "</table>"Спасибо, у меня есть еще одна проблема: когда одна из таблиц пуста, заголовки размещаются справа, а не внизу, я добавлю скриншот.
Привет @Meet Можете ли вы увидеть новый скриншот? когда таблица пуста, заголовки находятся справа
Кто-нибудь знает как это делать?
@Bandit, это происходит потому, что когда в таблице 2 нет содержимого, ее ширина уменьшается, и из-за этого она перемещается к следующему из первого элемента div. Нам нужно добавить свойства flex в родительский элемент div.
Можете ли вы помочь с этим? я правда не знаю как это сделать и где
@Bandit Я отредактировал ответ выше, попробуйте, но я не уверен, сработает это или нет.
Это изменение? минимальная ширина: 70vh
@Bandit да, это не предпочтительное решение. Лучшее и правильное решение — поместить обе таблицы внутри div и добавить display: flex и flex-direction: column. Если это возможно в вашем случае, отдайте предпочтение этому решению.
Давайте продолжим обсуждение в чате.
Добавьте
marginвокруг стола, чтобы создать некоторое расстояние.