我正在尋找Groovy爲Excel文檔執行基本格式化命令的一些示例。我也想知道我在哪裏可以找到這些命令的存儲庫。Scriptom Groovy格式化Excel示例
你會如何:
插入一行
格式的短日期,時間單元等
大膽一整列或行
我正在尋找Groovy爲Excel文檔執行基本格式化命令的一些示例。我也想知道我在哪裏可以找到這些命令的存儲庫。Scriptom Groovy格式化Excel示例
你會如何:
插入一行
格式的短日期,時間單元等
大膽一整列或行
這個怎麼樣(有POI 3.9 )。
假設您在/tmp/test.xls
中有輸入XLS文件,這應該進行所要求的修改,然後將工作簿寫入新文件/tmp/test2.xls
。我已經添加了評論,所以希望它有意義:-)
@Grab('org.apache.poi:poi:3.9')
import static org.apache.poi.ss.usermodel.CellStyle.*
import static org.apache.poi.ss.usermodel.IndexedColors.*
import org.apache.poi.hssf.usermodel.*
// Open the spreadsheet
new File('/tmp/test.xls').withInputStream { ins ->
new HSSFWorkbook(ins).with { workbook ->
// Select the first sheet
getSheetAt(0).with { sheet ->
// Insert a row at row 2 (zero indexed)
shiftRows(1, sheet.lastRowNum, 1)
// Add a value to this row in cell 1
getRow(1).with { row ->
createCell(0).with { cell ->
cell.setCellValue('12:32')
}
}
// Set the cell format to Time
// First we need to declare a style
def timeStyle = workbook.createCellStyle().with { style ->
dataFormat = HSSFDataFormat.getBuiltinFormat('h:mm:ss AM/PM')
style
}
// Then apply it to our cell
getRow(1).with { row ->
getCell(0).with { cell ->
cell.cellStyle = timeStyle
}
}
// Make row 1 bold
// First declare a style
def boldStyle = workbook.createCellStyle().with { style ->
style.font = workbook.createFont().with { f ->
f.boldweight = HSSFFont.BOLDWEIGHT_BOLD
f
}
style
}
// Then apply it to the row (I can only get this to work doing
// it to each cell in turn, setting the rowStyle seems to do nothing
getRow(0).with { row ->
(0..10).each {
getCell(it)?.cellStyle = boldStyle
}
}
}
// Write the modified workbook out to another xls file
new File('/tmp/test2.xls').withOutputStream { os ->
write(os)
}
}
}
做得很好。我建議您將它添加到您的博客中,作爲Groovy中的POI用例。 :) – dmahapatro
@dmahapatro好主意:-D博客的感覺被忽視了;-) –
我每時每刻都在[挖掘](http://blog.bloidonia.com/)看看你在做什麼。 ;) – dmahapatro
POI不是問題而不是Scriptom? –
如果您可以使用POI來做,則不需要3.9 –