『壹』 我想用java來讀取Excel文件的某行某列,就是指定讀取某個位置的數據,然後顯示出來!怎麼弄求
工作中用到的導入excel一個方法,你還可以通過一些插件導入,代碼要你自己了,基本原理如下...
public Object importDoucument(MultipartFile uploadfile)
{
StringBuffer resultMessage = new StringBuffer();
ExcelImport excelImport = new ExcelImport();
Sheet sheet = null;
try
{
// 驗證文件格式 如不出錯 返回工作簿
excelImport.verifyExeclFile(uploadfile);
ExcelBean excelBean = excelImport.getExcelBean();
if (null != excelBean)
{
sheet = excelBean.getSheet();
}
//導入excel文件分析整理出list對象
List<StcCoreElements> dataList = getAssessCateRange(sheet, "戰略要素名稱", "戰略要素名稱", 2, 1);
int num = 0;
if(dataList.size()>0){
for (StcCoreElements itemStcVO : dataList)
{
StcCoreElements stcCoreElementsVo = nitemStcVO
//*****修改些處
this.save(stcCoreElementsVo);
++num;
}
}
resultMessage.append("已成功導入 "+num+" 條核心要素信息");
}
catch (Exception e)
{
resultMessage.append(e.getMessage());
e.printStackTrace();
}
finally
{
excelImport.close();
}
return resultMessage;
}
private List<StcCoreElements> getAssessCateRange(Sheet sheet, String startName, String endName, int rowNum, int titleRowNum)
{
int[] cateRange = new int[2];
List<StcCoreElements> dataList = new ArrayList<StcCoreElements>();
int lastRowNumber = sheet.getLastRowNum();
Row cateRow = sheet.getRow(rowNum - 1);
Cell cateCell = cateRow.getCell(0);
String cateCellValue = ImportExcelUtil.getCellValue(cateCell, sheet);
if (StringUtils.isNotBlank(cateCellValue))
{
if (StringUtils.startsWith(cateCellValue, startName))
{
cateRange[0] = rowNum + titleRowNum;
}
}
String currentCellValue0 = "";
do
{
Row currentRow = sheet.getRow(rowNum);
StcCoreElements info =new StcCoreElements();
Cell currentCell0 = currentRow.getCell(0);
currentCellValue0 = ImportExcelUtil.getCellValue(currentCell0, sheet);
info.setOverallPlan(currentCellValue0);
dataList.add(info);
rowNum++;
} while (rowNum <= lastRowNumber);
return dataList;
}
『貳』 Java 出力Excel 文件,並向該文件中寫固定格式的日期。我往文件里寫的是yyyy-mm-dd
你寫入的yyyy-mm-dd而顯示yyyy/mm/dd這是正常的,表示EXCEL理解了你寫入的數據是日期格式,顯回示的時候由於沒有答指定單元格的格式,所以系統以默認的yyyy/mm/dd格式顯示,這個其實沒關系。
如果你特別希望顯示為yyyy-mm-dd格式,可以寫入內容前增加一個單引號(半形英文),這樣強制告訴EXCEL這是個文本,不要理解為日期。
還有一個辦法,就是JAVA裡面寫入數據完畢,設置單元格的格式為yyyy-mm-dd,通過設置.NumberFormat 屬性為 "yyyy-mm-dd"實現。
『叄』 java 讀取excel文件 我需要去讀到每一行的每一個數據。 然後操作一番。 最後生成一個XML文件
jxl
package com.cj.fw.xml;
import java.io.File;import java.io.IOException;
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;import jxl.WorkbookSettings;import jxl.read.biff.BiffException;import jxl.write.Label;import jxl.write.WritableCell;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import com.cj.pro.domain.Drilling;
public class DrillingExport {
// 模板文件位置 private final static String TempletFile = "/attachments/template/emergencydrill.xls"; // 數據 private Drilling log = null; private String leixing=null;
/** * 構造函數 */ public DrillingExport( Drilling log,String leixing) { this.log=log; this.leixing=leixing; }
/** * 安全培訓日誌導出表 * @throws IOException * @throws BiffException * @throws WriteException */ public boolean export(HttpServletRequest request,HttpServletResponse response) throws BiffException, IOException, WriteException { String fileName=""; if("1".equals(leixing)){ fileName="應急演練信息導出表.xls"; }else if("2".equals(leixing)){ fileName="消防演練演練信息導出表.xls"; } response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-type","application/file"); response.setHeader("Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" )); File file = new File(request.getSession().getServletContext().getRealPath(TempletFile)); WorkbookSettings workbookSettings=new WorkbookSettings(); workbookSettings.setEncoding("ISO-8859-1"); //關鍵代碼,解決中文亂碼 Workbook workbook = Workbook.getWorkbook(file,workbookSettings); WritableWorkbook wwb = Workbook.createWorkbook(response.getOutputStream(), workbook); WritableSheet ws = wwb.getSheet(0); WritableCell cell = null; if("1".equals(leixing)){ cell = new Label(1,0,"應急演練單",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); }else if("2".equals(leixing)){ cell = new Label(1,0,"消防演練單",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); } if(log!=null){ cell = new Label(2,1,log.getRiqi(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(5,1,log.getDidian(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,2,log.getMingcheng(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(5,2,log.getZudanwei(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,3,log.getJiaoben(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,4,log.getBeizhu(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); }else{ cell = new Label(2,4,"導出出錯",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); } //合計小寫 wwb.write(); wwb.close(); workbook.close(); return true; }
}
上面的是導出 你可以變變
『肆』 java循環讀取excel每個sheet,讀第一個sheet數據條數從1開始計數,下一個sheet仍舊從1開始計數該如何處理
.計數器定義在 循環讀取sheet的 循環裡面不就好了么....
publicstaticvoidmain(String[]args)throwsException{
=newFileInputStream("path");
Workbookworkbook=newHSSFWorkbook(fileInputStream);//讀取excel
for(inti=0;i<workbook.getNumberOfSheets();i++){
Sheetsheet=workbook.getSheetAt(i);//獲取sheet
intcount=0;//總條數第二個sheet自動歸0
for(intj=0;j<sheet.getPhysicalNumberOfRows();j++){
Rowrow=sheet.getRow(j);//獲取行
//count++;//按行的話
for(intk=0;k<row.getPhysicalNumberOfCells();k++){
Cellcell=row.getCell(k);//獲取單元格
//count++;按單元格的話
}
}
}
}
『伍』 怎麼用java將一個excel裡面數據讀出並寫入另一個excel求助
使用jxl這個包
導入這個包下的
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
然後
File f = new File("d:/view.xls");//獲得文件
WritableWorkbook wb = Workbook.createWorkbook(f);//可以讀寫的workbook
WritableSheet s = wb.createSheet("第一頁", 0);//workbook中的sheet,就是在excel下面那個sheet1,sheet2.這個方法表名使用第一個sheet並且命名為"第一頁"
Label lable = null;//label就是某鄭備一個小單元格
2層循環,給每個label
label = new Label(列,行,值);//都是從0開始的.就是給第幾列地幾行的labe里寫東西
s.addCell(l);//把這個lable加入到sheet中
最後
wb.write();
wb.close();
讀的也差不橘衫多.
你網路一下圓叢腔jxl,到處都是例子的哇
望採納