Руби CSV слияния клеток
Предположим, у меня есть много объектов, у каждого есть UID
собственность и массив кредитных карт НЕТ card_nos
,
Я хочу записать информацию в файл CVS(Excel) таким образом, чтобы ячейки с UID
объединены в один. Один UID
охватывает столько строк, сколько у него кредитных карт, но не менее одной.
Вот пример, Пользователь 001
имеет 3 карты, поэтому файл cvs будет выглядеть следующим образом:
+ ------------- + | UID | Карта № | --------------+ | | Card1 | --------+ | 001 | Card2 | --------+ | | Card3 | --------------+
Есть идеи? Заранее спасибо.
1 ответ
Вы не можете создать файл CSV, который делает это - формат CSV не поддерживает это.
Попробуйте по-другому, и вы увидите: создайте лист с описанным форматированием и сохраните его как CSV. Вы получите предупреждение, начиная с
"[whatever you called it/] may contain features that are not compatible with CSV (Comma delimited)...."
Примите ограничение, и вы получите файл CSV. Моя выглядела так:
UID,Card#
001,Card1
,Card2
,Card3
... который, когда я перезагрузил его в Excel, действительно потерял слияние, как я ожидал:
+------+-------+
| UID | Card# |
+------+-------+
| 1 | Card1 |
+------+-------+
| | Card2 |
+------+-------+
| | Card3 |
+------+-------+
Вы можете, однако, попасть туда с помощью HTML, если в вашем приложении есть смысл - следующий HTML-код будет загружен объединенной ячейкой UID, как описано (обратите внимание на использование "rowspan
"атрибут):
<table>
<thead>
<tr>
<td>UID</td>
<td>Card#</td>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">001</td>
<td>Card1</td>
</tr>
<tr>
<td>Card2</td>
</tr>
<tr>
<td>Card3</td>
</tr>
</tbody>
</table>