适用于Play Framework v2.x的Excel编写器模块

时间:2015-02-24 11:07:29

标签: excel scala playframework

如何从Play Framework v2.x(Scala)生成Excell报告。我发现那里有一个Play-Excel模块,但它支持PlayFramework v1.0。有什么适合v2.x吗?

1 个答案:

答案 0 :(得分:1)

最后,我选择使用Spoiwo. Scala Wrapper for Apache POI。它有一个简洁的入门指南。但是,PlayFramework没有示例。

这是我从案例类生成简单报告的快速而肮脏的黑客行为。

def generateReportXLSX(waybillId: Long) = Action{ implicit request =>

    val headerStyle =
      CellStyle(fillPattern = CellFill.Solid, fillForegroundColor = Color.DarkGrey, fillBackgroundColor = Color.AquaMarine, font = Font(bold = true))

    val listItems: List[Item] = Items.findByWaybillId(waybillId)

    val listRows = listItems.map{ item =>
      Row().withCellValues(item.id.getOrElse(1), item.itemCode, item.senderName.getOrElse(""))
    }

    val gettingStartedSheet = Sheet(name = "Накладная ")
      .withRows(listRows)
      .withColumns(
        Column(index = 0, style = CellStyle(font = Font(bold = true)), autoSized = true)
      )

    gettingStartedSheet.saveAsXlsx("/home/user/dumps/"+waybillId+".xlsx")

    Ok.sendFile(new File(("/home/user/dumps/"+waybillId+".xlsx")))

  }