Dùng Groovy để đọc excel file

Tháng Ba 3, 2008 at 11:19 sáng Bạn nghĩ gì về bài viết này?

Đây là bài gốc từ mailing list của org.codehaus.groovy.userI got introduced to JExcelApi on the Groovy IRC channel this morning (http://www.andykhan.com/jexcelapi/)This is a Java package which lets you read an write Excel spreadsheets. It look pretty slick.

I have just hacked a Groovy script which reads an Excel spreadsheet and writes out the cell contents as a CSV


import java.io.File import jxl.Workbook

writeCsv = { | out, workBook, hide | 				for (sheetNumber in 0...workBook.numberOfSheets) { 					sheet = workBook.getSheet(sheetNumber)

out.println sheet.name

if (!(hide && sheet.settings.hidden)) { 						for (rowNumber in 0...sheet.rows) { 							row = sheet.getRow(rowNumber)

println row.findAll({!(hide && it.hidden)}).contents.join(', ') 						} 					} 				} 			}

writeCsv(System.out, Workbook.getWorkbook(new File("jxlrwtest.xls")),  false)
Some things to note:

sheet.settings.hidden
in Java this would have to be
sheet.getSettings().isHidden()
– Groovy’s bean support reduced the noise for
(sheetNumber in 0...workBook.numberOfSheets)

we use the ‘…’ form of the range to go to workBook.getNumberOfSheets() – 1 – again lots less noise

row.findAll({!(hide && it.hidden)}).contents

the findAll call returns a list of cell objects. We want to call getContents() on each cell object. We could use collect({ it.contents}) but someList.someProperty is equivalent to someList.collect({it.someProperty}) and a lot less noisy

If you download the package from the link above you will see a Java version of this in the demo package.

Advertisements

Entry filed under: Groovy. Tags: .

Phát hành GWT 1.4 – thêm nhiều widgets, khởi động nhanh hơn và các nâng cấp khácD Grails SQL date formatting tag lib

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Tháng Ba 2008
H B T N S B C
« Th9   Th6 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Bài viết mới

RSS Jason Rudolph (GRails)

  • Lỗi: có thể dòng không tin đang không hoạt động. Hãy thử lại sau.

%d bloggers like this: