【问题标题】:ruby csv merge cellsruby csv合并单元格
【发布时间】:2011-05-16 08:20:04
【问题描述】:

假设我有很多对象,每个对象都有一个UID 属性和一组信用卡号码card_nos

我想以一种将具有相同UID 的单元格合并为一个单元格的方式将信息转储到 CVS(Excel) 文件中。一个UID 跨越与其拥有的信用卡数量一样多的行,但至少有一张。

这里是一个例子,用户001有3张卡,所以cvs文件如下所示:

+--------------+ |识别码 |卡# | --------------+ | |卡1 | --------+ | 001 |卡2 | --------+ | |卡3 | --------------+

有什么想法吗?提前致谢。

【问题讨论】:

  • "CVS(Excel)"? (或 CSV?);最少 --> 最少
  • @sawa:CVS 文件就够了。抱歉打错字了。

标签: ruby csv fastercsv


【解决方案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 单元格(注意使用“@987654324 @" 属性):

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2018-03-21
    相关资源
    最近更新 更多