如何用java写在多个单元格数据在Excel中? [英] How to write data in multiple cells in Excel using java?

查看:177
本文介绍了如何用java写在多个单元格数据在Excel中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写了一个code写入数据在Excel sheet.In此我必须写在多个cells.But数据则显示出一些Errors.For一个单元是能够改变data.I保持循环在多个cells.For改变数据这个它显示错误。
任何一个可以告诉我,在那里我做了错误的。

 进口java.io. *;
进口java.text.SimpleDateFormat的;
进口的java.util.Calendar;
进口java.util.Iterator的;
进口的java.util.List;
进口java.util.Vector中;
进口java.lang.String中;进口javax.swing.JOptionPane中;进口jxl.Cell;进口org.apache.poi.hssf.util.CellReference;
进口org.apache.poi.ss.formula.functions.Column;
进口org.apache.poi.ss.usermodel.Row;
进口org.apache.poi.xssf.usermodel.XSSFCell;
进口org.apache.poi.xssf.usermodel.XSSFComment;
进口org.apache.poi.xssf.usermodel.XSSFRow;
进口org.apache.poi.xssf.usermodel.XSSFSheet;
进口org.apache.poi.xssf.usermodel.XSSFWorkbook;
公共类Sele1
{    公共静态无效的主要(字串[] args)
    {
        // TODO自动生成方法存根
        字符串文件名=C:\\\\ \\\\用户\\\\ u30408​​1桌面\\\\ \\\\的Java new.xlsx        尝试
        {
            的FileInputStream fileInputStream3 =新的FileInputStream(文件名);
            文件outputsheetfile1 =新的文件(文件名);
            如果(outputsheetfile1.exists())
            {
                的System.out.println(文件存在);
                尝试
                {
                    XSSFWorkbook ObjWorkBook =新XSSFWorkbook(fileInputStream3);
                    XSSFSheet DriverTableSheet = ObjWorkBook.getSheetAt(0);
                    的for(int i = 1;我3;;我++)
                    {
                    XSSFRow ROW1 = DriverTableSheet.getRow(ⅰ);
                    XSSFCell电池1 = row1.getCell(0);                    的System.out.println(电池1+电池1);
                    //System.out.println(\"Cell2\"+电池2);
                     字符串str =ABC;
                     Cell1.setCellValue(STR);                     FileOutputStream中OUT1 =新的FileOutputStream(文件名,FALSE);
                     ObjWorkBook.write(OUT1);
                     fileInputStream3.close();
                    }                }
            赶上(IOException异常E)
            {
                // TODO自动生成catch块
                e.printStackTrace();
            }            }
        }赶上(FileNotFoundException异常五){
            // TODO自动生成catch块
            e.printStackTrace();
        }
        }
    }

错误我得到的是:

  ObjWorkBook.write(OUT1);`POI彬3.9-20121203 \\ POI-3.9 \\ POI-OOXML-3.9-20121203.jar没有源代码连接`


解决方案

  HSSFWorkbook工作簿=新HSSFWorkbook();
        HSSFSheet表= workbook.createSheet(课程包解决方案详细信息);
        outputFileName = outPut.getAbsolutePath();
        INT ROWNUM = 0;`输入code here`
        的for(int i = 0; I< dataList.size();我++){
            [对象] objArr = dataList.get(I)
            HSSFRow行= sheet.createRow(ROWNUM ++);            INT cellnum = 0;
            对于(obj对象:objArr){
                电池单元= row.createCell(cellnum ++);
                sheet.autoSizeColumn((短)cellnum);
                如果(OBJ的instanceof日期){
                    cell.setCellValue((日期)OBJ);
                }否则如果(OBJ的instanceof布尔){
                    cell.setCellValue((布尔)物镜);
                }否则如果(OBJ的instanceof字符串){
                    cell.setCellValue((字符串)目标文件);
                }否则如果(OBJ的instanceof双人间){
                    cell.setCellValue((双人间)OBJ);
                }
            }
        }
        如果(outPut.exists()){
            outPut.delete();
        }
        FileOutputStream中出=
                新的FileOutputStream(输出);
        workbook.write(出);

DataList控件是数组对象的ArrayList,所以你可以根据需要初始化输入尽可能多的数据。

DataList控件的例子:

  dataList.add(新对象[] {SR号,Cols1,cols2,cols3......colsn}) ;

您可以在列表中插入相应数据。这个例子是.xls格式,如果你希望得到的.xlsx使用xssfworkbook。

可能是帮助你。

I wrote a code for writing data in an Excel sheet.In this i have to write the data in multiple cells.But it is showing some Errors.For one cell it is able to change the data.I kept for loop for changing the data in multiple cells.For this it is showing Error. Can any one tell me that where i did mistake.

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import java.lang.String;

import javax.swing.JOptionPane;

import jxl.Cell;

import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.ss.formula.functions.Column;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFComment;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;


public class Sele1
{

    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        String FileName = "C:\\Users\\u304081\\Desktop\\Java\\new.xlsx";

        try 
        {
            FileInputStream fileInputStream3 = new FileInputStream(FileName);
            File outputsheetfile1 = new File(FileName);
            if(outputsheetfile1.exists()) 
            {
                System.out.println("File existed");
                try
                {
                    XSSFWorkbook ObjWorkBook = new XSSFWorkbook(fileInputStream3);
                    XSSFSheet DriverTableSheet = ObjWorkBook.getSheetAt(0);
                    for(int i=1;i<3;i++)
                    {
                    XSSFRow row1 = DriverTableSheet.getRow(i);
                    XSSFCell Cell1 = row1.getCell(0);

                    System.out.println("Cell1"+ Cell1);
                    //System.out.println("Cell2"+ Cell2);
                     String str = "Abc";
                     Cell1.setCellValue(str);

                     FileOutputStream out1 = new FileOutputStream (FileName,false);
                     ObjWorkBook.write(out1);
                     fileInputStream3.close();
                    }

                } 
            catch (IOException e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
    }

Error I am getting is:

ObjWorkBook.write(out1);

`"poi-bin-3.9-20121203\poi-3.9\poi-ooxml-3.9-20121203.jar has no source attachment"`

解决方案

        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("Course Pack Resolution Details");
        outputFileName = outPut.getAbsolutePath(); 
        int rownum = 0;`enter code here`
        for (int i = 0; i < dataList.size(); i++) {
            Object[] objArr = dataList.get(i);
            HSSFRow row = sheet.createRow(rownum++);

            int cellnum = 0;
            for (Object obj : objArr) {
                Cell cell = row.createCell(cellnum++);
                sheet.autoSizeColumn((short) cellnum);
                if (obj instanceof Date) {
                    cell.setCellValue((Date) obj);
                } else if (obj instanceof Boolean) {
                    cell.setCellValue((Boolean) obj);
                } else if (obj instanceof String) {
                    cell.setCellValue((String) obj);
                } else if (obj instanceof Double) {
                    cell.setCellValue((Double) obj);
                }
            }
        }
        if (outPut.exists()) {
            outPut.delete();
        }
        FileOutputStream out =
                new FileOutputStream(outPut);
        workbook.write(out);

DataList is ArrayList of Array Object so you can enter as much data as you want init.

Example of DataList:

dataList.add(new Object[]{"Sr No.", "Cols1", "cols2", "cols3"......."colsn"});

respective data you can insert in list. this example is for .xls format if you want .xlsx then use xssfworkbook.

May be help you.

这篇关于如何用java写在多个单元格数据在Excel中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆