java怎么读取上传的excel文件,解决办法:
添加jar文件,java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。
jxl对Excel表格的认识,每个单元格的位置认为是由一个二维坐标(i,j)给定,其中i表示列,j表示行,并且从上到下递增,从左到右递增。
对于合并单元格的以最左,最上的单元格的坐标为准。如下图中t.xls,一班名单(0,0),陈茵(1,2),陈开先(1,6)。
4.java代码对t.xls的读取
ava操作Excel的一种方法:
在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。
其中jExcelAPI是一个韩国程序员的作品,虽然没有POI那样血统高贵,但是在使用过程中,感觉简单方便,对中文支持非常好,功能也比较强大。
工具:参考代码及注释如下:
import Java.io.Fileimport java.io.FileInputStreamimport java.io.FileNotFoundExceptionimport java.io.IOExceptionimport java.io.InputStream import org.apache.poi.hssf.usermodel.HSSFWorkbookimport org.apache.poi.ss.usermodel.Cellimport org.apache.poi.ss.usermodel.Rowimport org.apache.poi.ss.usermodel.Sheetimport org.apache.poi.ss.usermodel.Workbookpublic class ReadExcel { public static void readExcel(File file){ try { InputStream inputStream = new FileInputStream(file) String fileName = file.getName() Workbook wb = null// poi-3.9.jar 只可以读取2007以下的版本,后缀为:xsl wb = new HSSFWorkbook(inputStream)//解析xls格式 Sheet sheet = wb.getSheetAt(0)//第一个工作表 ,第二个则为1,以此类推... int firstRowIndex = sheet.getFirstRowNum() int lastRowIndex = sheet.getLastRowNum() for(int rIndex = firstRowIndexrIndex <= lastRowIndexrIndex ++){ Row row = sheet.getRow(rIndex) if(row != null){ int firstCellIndex = row.getFirstCellNum()// int lastCellIndex = row.getLastCellNum() //此处参数cIndex决定可以取到excel的列数。 for(int cIndex = firstCellIndexcIndex <3cIndex ++){ Cell cell = row.getCell(cIndex) String value = "" if(cell != null){ value = cell.toString() System.out.print(value+"\t") } } System.out.println() } } } catch (FileNotFoundException e) { // TODO 自动生成 catch 块 e.printStackTrace() } catch (IOException e) { // TODO 自动生成 catch 块 e.printStackTrace() } } public static void main(String[] args) { File file = new File("D:/test.xls") readExcel(file)}}
//java生成简单的Excel文件package beans.excel
import java.io.IOException
import java.io.OutputStream
import jxl.Workbook
import jxl.write.Label
import jxl.write.WritableSheet
import jxl.write.WritableWorkbook
import jxl.write.WriteException
public class SimpleExcelWrite {
public void createExcel(OutputStream os) throws WriteException,IOException{
//创建工作薄
WritableWorkbook workbook = Workbook.createWorkbook(os)
//创建新的一页
WritableSheet sheet = workbook.createSheet("First Sheet",0)
//创建要显示的内容,创建一个单元格,第一个参数为列坐标,第二个参数为行坐标,第三个参数为内容
Label xuexiao = new Label(0,0,"学校")
sheet.addCell(xuexiao)
Label zhuanye = new Label(1,0,"专业")
sheet.addCell(zhuanye)
Label jingzhengli = new Label(2,0,"专业竞争力")
sheet.addCell(jingzhengli)
Label qinghua = new Label(0,1,"清华大学")
sheet.addCell(qinghua)
Label jisuanji = new Label(1,1,"计算机专业")
sheet.addCell(jisuanji)
Label gao = new Label(2,1,"高")
sheet.addCell(gao)
Label beida = new Label(0,2,"北京大学")
sheet.addCell(beida)
Label falv = new Label(1,2,"法律专业")
sheet.addCell(falv)
Label zhong = new Label(2,2,"中")
sheet.addCell(zhong)
Label ligong = new Label(0,3,"北京理工大学")
sheet.addCell(ligong)
Label hangkong = new Label(1,3,"航空专业")
sheet.addCell(hangkong)
Label di = new Label(2,3,"低")
sheet.addCell(di)
//把创建的内容写入到输出流中,并关闭输出流
workbook.write()
workbook.close()
os.close()
}
}