java錄excel表單(java導入excel表格)
本篇文章給大家談談java錄excel表單,以及java導入excel表格對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
今天給各位分享java錄excel表單的知識,其中也會對java導入excel表格進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!
import jxl.*;
import java.io.*;
import jxl.write.*;
/**
* <pjava讀取Excel表格,拷貝、更新Excel工作薄 </p
* <pDescription: Java開發人員可以讀取Excel文件的內容,更新Excel工作薄,開發人員
* 也可以用程序生成新的Excel表格,不過我覺得在我們工作中幾乎沒有這方面需求,我
* 就不再列出來了,如果有哪位同事需要的話,我再把程序寫出來
* </p
* <pCopyright: Copyright (c) KongZhong Corparation 2005</p
* <p程序開發環境為jb9</p
* @author 張麗鵬
* @version 1.0
*/
public class Test1 {
public static void main(String[] args) {
jxl.Workbook rwb = null;
try{
//構建Workbook對象, 只讀Workbook對象
//直接從本地文件創建Workbook
//從輸入流創建Workbook
InputStream is = new FileInputStream("D:/jb9Test/MyExcelTest/Book1.xls");
rwb = Workbook.getWorkbook(is);
//Sheet(術語:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
//Sheet的下標是從0開始
//獲取第一張Sheet表
Sheet rs = rwb.getSheet(0);
//獲取Sheet表中所包含的總列數
int rsColumns = rs.getColumns();
//獲取Sheet表中所包含的總行數
int rsRows = rs.getRows();
//獲取指定單元格的對象引用
for(int i=0;i<rsRows;i++){
for(int j=0;j<rsColumns;j++){
Cell cell = rs.getCell(j,i);
System.out.print(cell.getContents()+" ");
}
System.out.println();
}
//利用已經創建的Excel工作薄創建新的可寫入的Excel工作薄
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("D:/jb9Test/MyExcelTest/Book2.xls"),rwb);
//讀取第一張工作表
jxl.write.WritableSheet ws = wwb.getSheet(0);
//獲得第一個單元格對象
jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
//判斷單元格的類型, 做出相應的轉化
if (wc.getType() == CellType.LABEL) {
Label l = (Label) wc;
l.setString("The value has been modified.");
}
//寫入Excel對象
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
finally{
//操作完成時,關閉對象,釋放占用的內存空間
rwb.close();
}
}
}
如果你要用java做excel的文件(*.xls或*.xlsx),可用POI或JXL,POI支持excel03和excel07格式,JXL適合處理大數據表,但只支持excel03;
//創建工作簿對象
HSSFWorkbook wb=new HSSFWorkbook();
//創建工作表對象
HSSFSheet sheet=wb.createSheet("java錄excel表單我的工作表");
//創建繪圖對象
HSSFPatriarch p=sheet.createDrawingPatriarch();
//創建單元格對象,批注插入到4行,1列,B5單元格
HSSFCell cell=sheet.createRow(4).createCell(1);
//插入單元格內容
cell.setCellValue(new HSSFRichTextString("批注"));
//獲取批注對象
//(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2)
//前四個參數是坐標點,后四個參數是編輯和顯示批注時的大小.
HSSFComment comment=p.createComment(new HSSFClientAnchor(0,0,0,0,(short)3,3,(short)5,6));
//輸入批注信息
comment.setString(new HSSFRichTextString("插件批注成功!插件批注成功!"));
//添加作者,選中B5單元格,看狀態欄
comment.setAuthor("toad");
//將批注添加到單元格對象中
cell.setCellComment(comment);
//創建輸出流
FileOutputStream out=new FileOutputStream("writerPostil.xls");
wb.write(out);
//關閉流對象
out.close();
}
Aspose.cell for Java+Aspose.PDF for Java 可以實現java錄excel表單,但是網上Aspose的jar包貌似沒破解的,.net的倒挺多.
/**導出數據為XLS格式
* @param fos
* @param bo
*/
public void writeExcelBo(FileOutputStream fos, java.util.Vector ve)
{
jxl.write.WritableWorkbook wwb;
try
{
wwb= Workbook.createWorkbook(fos);
jxl.write.WritableSheet ws= wwb.createSheet("booksheet", 10);
ws.addCell(new jxl.write.Label(0, 1, "書目ID"));
ws.addCell(new jxl.write.Label(1, 1, "ISBN"));
ws.addCell(new jxl.write.Label(2, 1, "定價"));
ws.addCell(new jxl.write.Label(3, 1, "書名"));
ws.addCell(new jxl.write.Label(4, 1, "原書名"));
ws.addCell(new jxl.write.Label(5, 1, "副題名"));
ws.addCell(new jxl.write.Label(6, 1, "著者"));
ws.addCell(new jxl.write.Label(7, 1, "譯者"));
ws.addCell(new jxl.write.Label(8, 1, "版次"));
ws.addCell(new jxl.write.Label(9, 1, "出版地"));
ws.addCell(new jxl.write.Label(10, 1, "出版社"));
ws.addCell(new jxl.write.Label(11, 1, "出版日期"));
ws.addCell(new jxl.write.Label(12, 1, "頁數"));
ws.addCell(new jxl.write.Label(13, 1, "書高"));
ws.addCell(new jxl.write.Label(14, 1, "裝幀"));
ws.addCell(new jxl.write.Label(15, 1, "叢書名"));
ws.addCell(new jxl.write.Label(16, 1, "一般性附注項"));
ws.addCell(new jxl.write.Label(17, 1, "簡介"));
ws.addCell(new jxl.write.Label(18, 1, "主題詞"));
ws.addCell(new jxl.write.Label(19, 1, "中圖法分類"));
ws.addCell(new jxl.write.Label(20, 1, "更新日期"));
ws.addCell(new jxl.write.Label(21, 1, "本數"));
book=new Book[ve.size()];
for (int i= 0; i < ve.size(); i++)
{
book[i]= (Book)ve.get(i);
ws.addCell(new jxl.write.Label(0, i + 2, "" + book[i].getBookId()));
ws.addCell(new jxl.write.Label(1, i + 2, book[i].getIsbn()));
ws.addCell(new jxl.write.Label(2, i + 2, "" + book[i].getPrice()));
ws.addCell(new jxl.write.Label(3, i + 2, book[i].getBookTitle()));
ws.addCell(new jxl.write.Label(4, i + 2, book[i].getOldFilename()));
ws.addCell(new jxl.write.Label(5, i + 2, book[i].getSubTitle()));
ws.addCell(new jxl.write.Label(6, i + 2, book[i].getWriter()));
ws.addCell(new jxl.write.Label(7, i + 2, book[i].getTranscribe()));
ws.addCell(new jxl.write.Label(8, i + 2, "" + book[i].getVersion()));
ws.addCell(new jxl.write.Label(9, i + 2, book[i].getPublishCity()));
ws.addCell(new jxl.write.Label(10, i + 2, book[i].getPublisher()));
ws.addCell(new jxl.write.Label(11, i + 2, book[i].getPublishDate().toString()));
ws.addCell(new jxl.write.Label(12, i + 2, "" + book[i].getPage()));
ws.addCell(new jxl.write.Label(13, i + 2, "" + book[i].getHight()));
ws.addCell(new jxl.write.Label(14, i + 2, book[i].getInstall()));
ws.addCell(new jxl.write.Label(15, i + 2, book[i].getSeries()));
ws.addCell(new jxl.write.Label(16, i + 2, book[i].getNotes()));
ws.addCell(new jxl.write.Label(17, i + 2, book[i].getPrecisnotes()));
ws.addCell(new jxl.write.Label(18, i + 2, book[i].getSubject()));
ws.addCell(new jxl.write.Label(19, i + 2, book[i].getCls().replaceAll("_", "")));
ws.addCell(new jxl.write.Label(20, i + 2, book[i].getUpdatedate().toString()));
ws.addCell(new jxl.write.Label(21, i + 2, "0"));
}
jxl.write.WritableFont wfc=
new jxl.write.WritableFont(
WritableFont.ARIAL,
255,
WritableFont.BOLD,
false,
UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc);
ws.addCell(new jxl.write.Label(0, 0, "為保證您提交定單的穩定和正確,導入定單時候請勿更改此表格式(請勿更改書目ID,訂購本數自行添加!)"));
wwb.write();
//關閉Excel工作薄對象
wwb.close();
} catch (IOException e)
{} catch (RowsExceededException e)
{} catch (WriteException e)
{}
}
//導入EXCEL
if (f.getName().indexOf(".xls") 0)
{
try
{
fis= new FileInputStream(f);
BookBean bob= new BookBean();
UserBean usb= new UserBean();
jxl.Workbook rwb= Workbook.getWorkbook(fis);
jxl.Sheet sh= rwb.getSheet(0);
int rowCount= sh.getRows();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
book= new Book[rowCount - 1];
for (int i= 1; i < rowCount; i++)
{
book[i - 1]= new Book();
jxl.Cell[] ce= sh.getRow(i);
book[i - 1].setIsbn(ce[0].getContents().toString());
book[i - 1].setSeries(ce[1].getContents().toString());
book[i - 1].setBookTitle(ce[2].getContents().toString());
book[i - 1].setWriter(ce[3].getContents().toString());
book[i - 1].setTranscribe(ce[4].getContents().toString());
book[i - 1].setPublisher(ce[5].getContents().toString());
book[i - 1].setPublishDate(sdf.parse(ce[6].getContents().toString(), new ParsePosition(0)));
book[i-1].setVersion(Integer.parseInt(ce[7].getContents().toString()));
book[i-1].setPage(Integer.parseInt(ce[8].getContents().toString()));
book[i-1].setCls(ce[9].getContents().toString());
book[i-1].setPrecisnotes(ce[10].getContents().toString());
book[i-1].setInstall(ce[11].getContents().toString());
book[i-1].setPrice(Float.parseFloat(ce[12].getContents().toString()));
book[i-1].setUserid(usb.getUser().getUserid());
getVector().addElement(book[i - 1]);
}
rwb.close();
fis.close();
} catch (FileNotFoundException e)
{} catch (BiffException e)
{} catch (IOException e)
{} catch (NumberFormatException e)
{
ShowMessage("數據導入失敗,請按照本軟件要求的EXCEL格式導入定單");
}
}
List<Object[] exList =(List<Object[])exlList;
int len = exList.get(0).length;
// 創建一個sheet表單
HSSFSheet sheet = wb.createSheet(sheetName);
Region region = null;
//樣式
HSSFCellStyle cellStyle1 = setStyleBorder(wb);
HSSFCellStyle cellStyle2 = setStyleFontBorder(wb);
// 創建標題行
HSSFRow row = sheet.createRow(0);
row.setHeight((short)500);
// 創建單元格
HSSFCell cell = null;
if(title != null !"".equals(title)){
region = new Region(0, (short)0, 0, (short)(len- 1));
sheet.addMergedRegion(region);
cell = row.createCell(0);
// 標題寫入單元格
cell.setCellValue(title);
cell.setCellStyle(setStyleFontSize(wb, 18));
}else{
n = n - 1;
}
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(8);
//合計信息
Double[] sum = new Double[len];
Object[] s = null;
for(int i = 0; i < exList.size(); i++){
s = exList.get(i);
row = sheet.createRow(i + n);
// 創建數據行
for(int j = 0; j < s.length; j++){
cell = row.createCell(j);
/***
* jobin create
*/
if(s[j] instanceof Integer || s[j] instanceof Float){
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
}else{
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
}
if(!StringUtils.isNotEmpty(s[j])){
cell.setCellStyle(cellStyle1);
continue;
}
String[] rs = null;
int l = 3000;
if(i == 0 s[j].toString().indexOf(",") 0){
rs = s[j].toString().split(",");
cell.setCellValue(rs[0]);
l = Integer.parseInt(rs[1]);
}else{
cell.setCellValue(s[j].toString());
}
if(i == 0){
cell.setCellStyle(cellStyle2);
//設置列寬
// if(j == 0){
sheet.setColumnWidth(j, l);
// }else if(j == s.length -1){
// sheet.setColumnWidth(j, 5000);
// }else{
// sheet.setColumnWidth(j, 3000);
// }
}else{
cell.setCellStyle(cellStyle1);
//合計統計
if(index != null){
for(int in : index){
if(in == j){
if(sum[in] == null) sum[in] = 0.0;
sum[in] += Double.parseDouble(s[j].toString());
}
}
}
}
}
}
//合計信息
if(index != null){
region = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1));
sheet.addMergedRegion(region);
row = sheet.createRow(exList.size() + n);
for(int i = 0; i < sum.length; i++){
cell = row.createCell(i);
cell.setCellStyle(cellStyle2);
if(i == 0){
cell.setCellValue("合計");
}else if(sum[i] != null){
cell.setCellValue(formatter.format(sum[i]).replace(",", ""));
}
}
}
}
核心代碼,我項目上使用的 關于java錄excel表單和java導入excel表格的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。 java錄excel表單的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于java導入excel表格、java錄excel表單的信息別忘了在本站進行查找喔。
本文目錄一覽:
- 1、請教有誰用java在excel中有取過表單對象的經驗
- 2、java能做出excel表格嗎
- 3、java 如何寫excel
- 4、如何把java查詢出的內容導入到excel表格
- 5、如何用JAVA將數據庫中的數據導入到excel表格
- 6、JAVA怎么向Excel中寫入批量數據?
請教有誰用java在excel中有取過表單對象的經驗
<pre t="code" l="java"package myexceltest;import jxl.*;
import java.io.*;
import jxl.write.*;
/**
* <pjava讀取Excel表格,拷貝、更新Excel工作薄 </p
* <pDescription: Java開發人員可以讀取Excel文件的內容,更新Excel工作薄,開發人員
* 也可以用程序生成新的Excel表格,不過我覺得在我們工作中幾乎沒有這方面需求,我
* 就不再列出來了,如果有哪位同事需要的話,我再把程序寫出來
* </p
* <pCopyright: Copyright (c) KongZhong Corparation 2005</p
* <p程序開發環境為jb9</p
* @author 張麗鵬
* @version 1.0
*/
public class Test1 {
public static void main(String[] args) {
jxl.Workbook rwb = null;
try{
//構建Workbook對象, 只讀Workbook對象
//直接從本地文件創建Workbook
//從輸入流創建Workbook
InputStream is = new FileInputStream("D:/jb9Test/MyExcelTest/Book1.xls");
rwb = Workbook.getWorkbook(is);
//Sheet(術語:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
//Sheet的下標是從0開始
//獲取第一張Sheet表
Sheet rs = rwb.getSheet(0);
//獲取Sheet表中所包含的總列數
int rsColumns = rs.getColumns();
//獲取Sheet表中所包含的總行數
int rsRows = rs.getRows();
//獲取指定單元格的對象引用
for(int i=0;i<rsRows;i++){
for(int j=0;j<rsColumns;j++){
Cell cell = rs.getCell(j,i);
System.out.print(cell.getContents()+" ");
}
System.out.println();
}
//利用已經創建的Excel工作薄創建新的可寫入的Excel工作薄
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("D:/jb9Test/MyExcelTest/Book2.xls"),rwb);
//讀取第一張工作表
jxl.write.WritableSheet ws = wwb.getSheet(0);
//獲得第一個單元格對象
jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
//判斷單元格的類型, 做出相應的轉化
if (wc.getType() == CellType.LABEL) {
Label l = (Label) wc;
l.setString("The value has been modified.");
}
//寫入Excel對象
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
finally{
//操作完成時,關閉對象,釋放占用的內存空間
rwb.close();
}
}
}
java能做出excel表格嗎
如果是要做類似excel的軟件,java中可以使用Swing或SWT,比如永中Office就是java寫的;如果你要用java做excel的文件(*.xls或*.xlsx),可用POI或JXL,POI支持excel03和excel07格式,JXL適合處理大數據表,但只支持excel03;
java 如何寫excel
public static void main(String[] args) throws IOException {//創建工作簿對象
HSSFWorkbook wb=new HSSFWorkbook();
//創建工作表對象
HSSFSheet sheet=wb.createSheet("java錄excel表單我的工作表");
//創建繪圖對象
HSSFPatriarch p=sheet.createDrawingPatriarch();
//創建單元格對象,批注插入到4行,1列,B5單元格
HSSFCell cell=sheet.createRow(4).createCell(1);
//插入單元格內容
cell.setCellValue(new HSSFRichTextString("批注"));
//獲取批注對象
//(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2)
//前四個參數是坐標點,后四個參數是編輯和顯示批注時的大小.
HSSFComment comment=p.createComment(new HSSFClientAnchor(0,0,0,0,(short)3,3,(short)5,6));
//輸入批注信息
comment.setString(new HSSFRichTextString("插件批注成功!插件批注成功!"));
//添加作者,選中B5單元格,看狀態欄
comment.setAuthor("toad");
//將批注添加到單元格對象中
cell.setCellComment(comment);
//創建輸出流
FileOutputStream out=new FileOutputStream("writerPostil.xls");
wb.write(out);
//關閉流對象
out.close();
}
Aspose.cell for Java+Aspose.PDF for Java 可以實現java錄excel表單,但是網上Aspose的jar包貌似沒破解的,.net的倒挺多.
如何把java查詢出的內容導入到excel表格
java查詢出的內容導入到excel表格/**導出數據為XLS格式
* @param fos
* @param bo
*/
public void writeExcelBo(FileOutputStream fos, java.util.Vector ve)
{
jxl.write.WritableWorkbook wwb;
try
{
wwb= Workbook.createWorkbook(fos);
jxl.write.WritableSheet ws= wwb.createSheet("booksheet", 10);
ws.addCell(new jxl.write.Label(0, 1, "書目ID"));
ws.addCell(new jxl.write.Label(1, 1, "ISBN"));
ws.addCell(new jxl.write.Label(2, 1, "定價"));
ws.addCell(new jxl.write.Label(3, 1, "書名"));
ws.addCell(new jxl.write.Label(4, 1, "原書名"));
ws.addCell(new jxl.write.Label(5, 1, "副題名"));
ws.addCell(new jxl.write.Label(6, 1, "著者"));
ws.addCell(new jxl.write.Label(7, 1, "譯者"));
ws.addCell(new jxl.write.Label(8, 1, "版次"));
ws.addCell(new jxl.write.Label(9, 1, "出版地"));
ws.addCell(new jxl.write.Label(10, 1, "出版社"));
ws.addCell(new jxl.write.Label(11, 1, "出版日期"));
ws.addCell(new jxl.write.Label(12, 1, "頁數"));
ws.addCell(new jxl.write.Label(13, 1, "書高"));
ws.addCell(new jxl.write.Label(14, 1, "裝幀"));
ws.addCell(new jxl.write.Label(15, 1, "叢書名"));
ws.addCell(new jxl.write.Label(16, 1, "一般性附注項"));
ws.addCell(new jxl.write.Label(17, 1, "簡介"));
ws.addCell(new jxl.write.Label(18, 1, "主題詞"));
ws.addCell(new jxl.write.Label(19, 1, "中圖法分類"));
ws.addCell(new jxl.write.Label(20, 1, "更新日期"));
ws.addCell(new jxl.write.Label(21, 1, "本數"));
book=new Book[ve.size()];
for (int i= 0; i < ve.size(); i++)
{
book[i]= (Book)ve.get(i);
ws.addCell(new jxl.write.Label(0, i + 2, "" + book[i].getBookId()));
ws.addCell(new jxl.write.Label(1, i + 2, book[i].getIsbn()));
ws.addCell(new jxl.write.Label(2, i + 2, "" + book[i].getPrice()));
ws.addCell(new jxl.write.Label(3, i + 2, book[i].getBookTitle()));
ws.addCell(new jxl.write.Label(4, i + 2, book[i].getOldFilename()));
ws.addCell(new jxl.write.Label(5, i + 2, book[i].getSubTitle()));
ws.addCell(new jxl.write.Label(6, i + 2, book[i].getWriter()));
ws.addCell(new jxl.write.Label(7, i + 2, book[i].getTranscribe()));
ws.addCell(new jxl.write.Label(8, i + 2, "" + book[i].getVersion()));
ws.addCell(new jxl.write.Label(9, i + 2, book[i].getPublishCity()));
ws.addCell(new jxl.write.Label(10, i + 2, book[i].getPublisher()));
ws.addCell(new jxl.write.Label(11, i + 2, book[i].getPublishDate().toString()));
ws.addCell(new jxl.write.Label(12, i + 2, "" + book[i].getPage()));
ws.addCell(new jxl.write.Label(13, i + 2, "" + book[i].getHight()));
ws.addCell(new jxl.write.Label(14, i + 2, book[i].getInstall()));
ws.addCell(new jxl.write.Label(15, i + 2, book[i].getSeries()));
ws.addCell(new jxl.write.Label(16, i + 2, book[i].getNotes()));
ws.addCell(new jxl.write.Label(17, i + 2, book[i].getPrecisnotes()));
ws.addCell(new jxl.write.Label(18, i + 2, book[i].getSubject()));
ws.addCell(new jxl.write.Label(19, i + 2, book[i].getCls().replaceAll("_", "")));
ws.addCell(new jxl.write.Label(20, i + 2, book[i].getUpdatedate().toString()));
ws.addCell(new jxl.write.Label(21, i + 2, "0"));
}
jxl.write.WritableFont wfc=
new jxl.write.WritableFont(
WritableFont.ARIAL,
255,
WritableFont.BOLD,
false,
UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc);
ws.addCell(new jxl.write.Label(0, 0, "為保證您提交定單的穩定和正確,導入定單時候請勿更改此表格式(請勿更改書目ID,訂購本數自行添加!)"));
wwb.write();
//關閉Excel工作薄對象
wwb.close();
} catch (IOException e)
{} catch (RowsExceededException e)
{} catch (WriteException e)
{}
}
//導入EXCEL
if (f.getName().indexOf(".xls") 0)
{
try
{
fis= new FileInputStream(f);
BookBean bob= new BookBean();
UserBean usb= new UserBean();
jxl.Workbook rwb= Workbook.getWorkbook(fis);
jxl.Sheet sh= rwb.getSheet(0);
int rowCount= sh.getRows();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
book= new Book[rowCount - 1];
for (int i= 1; i < rowCount; i++)
{
book[i - 1]= new Book();
jxl.Cell[] ce= sh.getRow(i);
book[i - 1].setIsbn(ce[0].getContents().toString());
book[i - 1].setSeries(ce[1].getContents().toString());
book[i - 1].setBookTitle(ce[2].getContents().toString());
book[i - 1].setWriter(ce[3].getContents().toString());
book[i - 1].setTranscribe(ce[4].getContents().toString());
book[i - 1].setPublisher(ce[5].getContents().toString());
book[i - 1].setPublishDate(sdf.parse(ce[6].getContents().toString(), new ParsePosition(0)));
book[i-1].setVersion(Integer.parseInt(ce[7].getContents().toString()));
book[i-1].setPage(Integer.parseInt(ce[8].getContents().toString()));
book[i-1].setCls(ce[9].getContents().toString());
book[i-1].setPrecisnotes(ce[10].getContents().toString());
book[i-1].setInstall(ce[11].getContents().toString());
book[i-1].setPrice(Float.parseFloat(ce[12].getContents().toString()));
book[i-1].setUserid(usb.getUser().getUserid());
getVector().addElement(book[i - 1]);
}
rwb.close();
fis.close();
} catch (FileNotFoundException e)
{} catch (BiffException e)
{} catch (IOException e)
{} catch (NumberFormatException e)
{
ShowMessage("數據導入失敗,請按照本軟件要求的EXCEL格式導入定單");
}
}
如何用JAVA將數據庫中的數據導入到excel表格
import?java.io.*;
import?java.text.SimpleDateFormat;
import?java.util.*;
import?java.sql.*;
import?java.util.Date;
import?java.util.HashMap;
import?java.util.Map;
import?jxl.*;
public?class?SimUpdate?{
?private?String?fileName;
?public?ZfzSimUpdate(String?fileName){
??this.fileName?=?fileName;
?}
?static?Map?tNames;
?static{
??tNames?=?new?HashMap();
?}
?/**
??*?用于產生?數據庫java錄excel表單的?ID?值java錄excel表單,組成?[年月日時分秒(100-999)]?總共?17?位數.
??*?根據不同的表名,可保證同一秒內產生的?ID?號不重復
??*/??
?private?static?String?getDtime()?{
??String?rid;
??Date?nd?=?new?Date();
??SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyyMMddHHmmss");
??rid?=?sdf.format(nd);
??return?rid;
?}
?
?public?String?getSeqNumber(String?tableName)?{
??if(tableName?==?null?||?"".equals(tableName))
???tableName?=?"GENERY";
??Integer?it;
??//?noinspection?SynchronizeOnNonFinalField
??synchronized(tNames){
???it?=?(Integer)tNames.get(tableName);
???if(it?==?null){
????it?=?new?Integer(100);
????tNames.put(tableName,?it);
???}else{
????if(it.intValue()??998)
?????it?=?new?Integer(100);
????else
?????it?=?new?Integer(1?+?it.intValue());
????tNames.put(tableName,?it);
???}
??}
??return?getDtime()?+?String.valueOf(it);
?}
?
?private?void?updateDb(){
??try{
???Connection?conn?=?DbPool.connectDB();
???if(conn?!=?null){
????Statement?stmt?=?conn.createStatement();
????/**********************************************/
????jxl.Workbook?rwb?=?null;
????try{
?????//構建Workbook對象?只讀Workbook對象
?????//直接從本地文件創建Workbook
?????//從輸入流創建Workbook
?????InputStream?is?=?new?FileInputStream(fileName);
?????rwb?=?Workbook.getWorkbook(is);
?????//Sheet(術語:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
?????//Sheet的下標是從0開始的
?????//獲取第一張Sheet表
?????Sheet?rs?=?rwb.getSheet(0);
?????//獲取Sheet表中所包含的總列數
?????int?rsColumns?=?rs.getColumns();
?????//獲取Sheet表中所包含的總行數
?????int?rsRows?=?rs.getRows();
?????//獲取指這下單元格的對象引用
?????
?????String?simNumber?=?"",termSeqId?=?"";
?????//指定SIM卡號及序列號
?????for(int?i=0;i<rsRows;i++){
??????for(int?j=0;j<rsColumns;j++){
???????Cell?cell?=?rs.getCell(j,i);
???????if(j==0){
????????simNumber?=?cell.getContents();
???????}??
???????termSeqId?=?"633"+simNumber;
??????}?
??????String?sql?=?"查詢SQL";
??????int?isOk?=?stmt.executeUpdate(sql);
??????if(isOk?==?0??!simNumber.equals("")){
???????String?termId?=?getSeqNumber("termInf");
???????String?insertSql?=?"自定義INSERT";
???????int?isAdd?=?stmt.executeUpdate(insertSql);
???????if(isAdd??0){
????????System.out.println("成功插入第"+i+"條數據");
???????}
????????
??????}
??????//System.out.println("SIM卡號:"+simNumber+",序列號:"+termSeqId);
?????}
?????
?????//以下代碼為寫入新的EXCEL,這里不使用,所以注釋
?????/*
?????
?????//利用已經創建的Excel工作薄創建新的可寫入的Excel工作薄
?????jxl.write.WritableWorkbook?wwb?=?Workbook.createWorkbook(new?File("D://Book2.xls"),rwb);
?????//讀取第一張工作表
?????jxl.write.WritableSheet?ws?=?wwb.getSheet(0);
???
?????//獲取第一個單元格對象
?????jxl.write.WritableCell?wc?=?ws.getWritableCell(0,?0);
?????//決斷單元格的類型,做出相應的轉化
?????if?(wc.getType()?==?CellType.LABEL)?{
??????Label?l?=?(Label)?wc;
??????l.setString("The?value?has?been?modified.");
?????}
?????//寫入Excel對象
?????wwb.write();
?????wwb.close();
??????*/
????}catch(Exception?e){
?????e.printStackTrace();
????}
????finally{
?????//操作完成時,關閉對象,翻譯占用的內存空間
?????rwb.close();
???
????}
????/*********************************************/
}
??}catch(Exception?e){
???e.printStackTrace();
??}
?}
?public?static?void?main(String?args[]){
??DbPool?dbPool?=?new?DbPool("dbConn.cfg");//連接數據庫
??SimUpdate?simUpdate?=?new?SimUpdate("zfz_sim.xls");
??simUpdate.updateDb();
??
?}
??
}
我只用java錄excel表單了讀取XLS,寫入沒試,應該沒問題吧,java錄excel表單你把注釋了的拿?來試一下吧
JAVA怎么向Excel中寫入批量數據?
public static void drawExcel(HSSFWorkbook wb, String sheetName, String title, int n, List<? exlList, int[] index){List<Object[] exList =(List<Object[])exlList;
int len = exList.get(0).length;
// 創建一個sheet表單
HSSFSheet sheet = wb.createSheet(sheetName);
Region region = null;
//樣式
HSSFCellStyle cellStyle1 = setStyleBorder(wb);
HSSFCellStyle cellStyle2 = setStyleFontBorder(wb);
// 創建標題行
HSSFRow row = sheet.createRow(0);
row.setHeight((short)500);
// 創建單元格
HSSFCell cell = null;
if(title != null !"".equals(title)){
region = new Region(0, (short)0, 0, (short)(len- 1));
sheet.addMergedRegion(region);
cell = row.createCell(0);
// 標題寫入單元格
cell.setCellValue(title);
cell.setCellStyle(setStyleFontSize(wb, 18));
}else{
n = n - 1;
}
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(8);
//合計信息
Double[] sum = new Double[len];
Object[] s = null;
for(int i = 0; i < exList.size(); i++){
s = exList.get(i);
row = sheet.createRow(i + n);
// 創建數據行
for(int j = 0; j < s.length; j++){
cell = row.createCell(j);
/***
* jobin create
*/
if(s[j] instanceof Integer || s[j] instanceof Float){
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
}else{
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
}
if(!StringUtils.isNotEmpty(s[j])){
cell.setCellStyle(cellStyle1);
continue;
}
String[] rs = null;
int l = 3000;
if(i == 0 s[j].toString().indexOf(",") 0){
rs = s[j].toString().split(",");
cell.setCellValue(rs[0]);
l = Integer.parseInt(rs[1]);
}else{
cell.setCellValue(s[j].toString());
}
if(i == 0){
cell.setCellStyle(cellStyle2);
//設置列寬
// if(j == 0){
sheet.setColumnWidth(j, l);
// }else if(j == s.length -1){
// sheet.setColumnWidth(j, 5000);
// }else{
// sheet.setColumnWidth(j, 3000);
// }
}else{
cell.setCellStyle(cellStyle1);
//合計統計
if(index != null){
for(int in : index){
if(in == j){
if(sum[in] == null) sum[in] = 0.0;
sum[in] += Double.parseDouble(s[j].toString());
}
}
}
}
}
}
//合計信息
if(index != null){
region = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1));
sheet.addMergedRegion(region);
row = sheet.createRow(exList.size() + n);
for(int i = 0; i < sum.length; i++){
cell = row.createCell(i);
cell.setCellStyle(cellStyle2);
if(i == 0){
cell.setCellValue("合計");
}else if(sum[i] != null){
cell.setCellValue(formatter.format(sum[i]).replace(",", ""));
}
}
}
}
核心代碼,我項目上使用的 關于java錄excel表單和java導入excel表格的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。 java錄excel表單的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于java導入excel表格、java錄excel表單的信息別忘了在本站進行查找喔。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。