用java读取Excel表格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java读取Excel表格相关的知识,希望对你有一定的参考价值。
假如我A2单元格是通过Excel公式计算出来的结果,我怎么用java程序读取?
参考技术A 下个jxl.jar;看看aip就能用了 参考技术B import java.io.FileInputStream;import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
import jxl.write.Formula;
import jxl.write.Label;
import jxl.write.WritableCellFeatures;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
/**
* <p>标题:readExcel</p>
* <p>描述:读取Excel文件数据</p>
* @param excelfilePath Excel文件路径
* @param startRow 开始行
* @param startCol 开始列
* @return List<ArrayList<String>>
* @throws IOException
* @throws BiffException
*/
public List<ArrayList<String>> readExcel(String excelfilePath,
int startRow, int startCol) throws IOException, BiffException
// 读取xls文件
InputStream ins = new FileInputStream(excelfilePath);
// 设置读文件编码
WorkbookSettings setEncode = new WorkbookSettings();
setEncode.setEncoding("UTF-8");
Workbook rwb = Workbook.getWorkbook(ins, setEncode);
List<ArrayList<String>> alldata = new ArrayList<ArrayList<String>>();
ArrayList<String> data = null;
alldata.clear();
// 获得当前Excel表共有几个sheet
// Sheet[] sheets = rwb.getSheets();
// 获得表数
// int pages = sheets.length;
// 将excel表中的数据读取出来
// 在从Excel中读取数据的时候不需要知道每个sheet有几行,有那多少列
// for (int i = 0; i < pages; i++)
Sheet sheet = rwb.getSheet(0);
int cols = sheet.getColumns(); // 列
// 读取每一行对应的列数目
// 循环读取每一行的全部列数目的内容
int rows = sheet.getRows(); // 行
for (int r = startRow; r < rows; r++)
data = new ArrayList<String>();
// 行循环,Excel的行列是从(0,0)开始
for (int c = startCol; c < cols; c++)
Cell excelRows = sheet.getCell(c, r);
String strRow = excelRows.getContents();
data.add(strRow);
alldata.add(data);
//
ins.close();
return alldata;
自己写的java读取excel表格数据的方法,需要导入jxl包本回答被提问者和网友采纳 参考技术C 可以用 HSSFWorkbook 这个类,具体的 可以去看下API
怎样用VB读取Excel文件中表格中的数据?
天景花园2013年1月垃圾收集统计表
单位:公斤
日期 可回收物 厨余垃圾 有害垃圾 其他垃圾 总量
1月1日 58 110 0 117 285
1月2日 59 103 0 134 296
1月3日 60 105 0.5 139.5 305
1月4日 55 110 0 156 321
1月5日 58 115 0 157 330
1、VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
2、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:
第一步:在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。
第二步:在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet.
第三步:在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。
Dim XlsRow As Long
Dim TotalBit As Integer
Dim MachineID00_Msg000(i) As String
Dim i As Integer
SheetID = 3 设定表编号,即Sheet的编号。
Set ExcelApp = CreateObject("Excel.Application") '
Set ExcelBook = ExcelApp.Workbooks.Open(App.Path + "\Pameter.dat") '路径
Set ExcelSheet = ExcelBook.Worksheets(SheetID) '
XlsRow = 2 '读取起始行
TotalBit = 16 '要读取的行数
For i = 0 To (TotalBit - 1)
MachineID00_Msg000(i) = ExcelSheet.Range("D" & XlsRow).value
XlsRow = XlsRow + 1 '循还
Next i
ExcelApp.quit
Set ExcelSheet = Nothing
Set ExcelBook = Nothing
Set ExcelApp = Nothing本回答被提问者采纳 参考技术B 不需要VB,就可以直接读取表格的数据。还可以对表格的数据进行需要的计算、汇总、统计等。
以上是关于用java读取Excel表格的主要内容,如果未能解决你的问题,请参考以下文章
用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码