This library provide a template engine functionality for Excel for scala via case class.
Retrieve data from Excel and convert them to case class.
Create Excel from case class.
A case class to another case class converter.
- scala 2.11 or
- scala 2.12
This library avoids a lot of boilerplate and location definitions powered by shapeless.
Ordinary, typical apache poi coding is like location definitions, and they likely make mistakes a lot.
In order to avoid location definition in code, asta4e needs a case class and a bind Excel as location definition.
Then you can read excel as a case class way.
add dependency like the below.
libraryDependencies ++= Seq( "com.axtstar" %% "asta4e" % "0.0.16" )
provide case class you want to get.
case class Data( string:String, int:Int, intOpt:Option[Int], date:Date )
create excel as location definition.
location definition needs the dollar-brancket parameteres like the below.
you may reduce a definition from the definitions. so asta4e provides initial(zero) value, which currently cannot provide default value such as
or you may add some another definiton(s) not including in the case class. in that case, asta4e just ignore them.
- get bind data from Excel
val target = ExcelMapper.by[Data] .withLocation("template.xlsx") .getCC(new FileInputStream("data.xlsx"))
then, return to bind data to
target as option of Data type along side with sheetName.
IndexedSeq("sheetName" -> Option[Data])
set bind data to Excel
The function also needs 2 input Excel, first is Excel as same as the above, second is layout template Excel which copy to output data, asta4e does not manipulate excel layout.
import com.axtstar.asta4e._ ExcelMapper[Data] .withLocation("template.xlsx") .withLayoutXls("layout.xlsx") .withOutStream("output.path") .setCC(data)
then, you get output.xlsx as output excel.
if you are interested in the library, check my gitter8 repos from the below command.
sbt new axtstar/asta4e-sample.g8
Copyright 2019 axt Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.