需要Java Excel API实现写入excel文档的方法!
你先做成一个简单的写入excel的java类,参数为你要写入的那些项
关于如何写入数据项的方法WriteData(para1,para2,para3,.....),可以看看这里的解释
http://www-900.cn.ibm.com/developerWorks/cn/java/l-javaExcel/#1然后你在你的rs中调用就可以了。
while(rs.next())
{
str1 = rs.get..
str2 = rs.get..
...
WriteData(str1 ,str2 ....);
}
你先做成一个简单的写入excel的java类,参数为你要写入的那些项
关于如何写入数据项的方法WriteData(para1,para2,para3,.....),可以看看这里的解释
http://www-900.cn.ibm.com/developerWorks/cn/java/l-javaExcel/#1然后你在你的rs中调用就可以了。
while(rs.next())
{
str1 = rs.get..
str2 = rs.get..
...
WriteData(str1 ,str2 ....);
}
解决方案 »
- Mybatis中updateByPrimaryKey和updateByPrimaryKeySelective具体有什么区别?
- 求高手帮助!
- 菜鸟关于JSP路径取图片的问题,谢谢
- 请问这样的方法代表什么意思?
- 请问谁有minibase的源代码么?
- 请问如何用JAVA实现PC串口发送和接收短信(++急,100分求助)
- 一个现在不能理解的问题(java文件流)
- 请问各位高手:在JBUILDER6中可否实现像MS studio中那样输入对象和一个“.”后,能自动列出该对象所有的方法让你选择!谢谢!在线等待!
- 一个简单的Java程序!我不知道错在哪里还望指点!
- 关于Vector数组的问题
- http接口调用问题
- 数据库事务处理,为什么会出现各次结果不同?
The POI project consists of APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format using pure Java. Support for reading and writing Microsoft Excel files and property information is mature and work continues on reading and writing the MS Word format.
You can find the website at http://jakarta.apache.org/poi/ 方法二:用JExcelAPI
Java Excel API - A Java API to read, write, and modify Excel spreadsheets
http://jexcelapi.sourceforge.net/^_^
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;
public class CreateXL { /** Excel 文件要存放的位置,假定在D盘JTest目录下*/ public static String outputFile="D:/JTest/ gongye.xls"; public static void main(String argv[]){ try{ // 创建新的Excel 工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); // 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标"); HSSFSheet sheet = workbook.createSheet(); // 在索引0的位置创建行(最顶端的行) HSSFRow row = sheet.createRow((short)0); //在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue("增加值");
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();
System.out.println("文件生成..."); }catch(Exception e) {
System.out.println("已运行 xlCreate() : " + e );
}
}
} 读取Excel文档中的数据 示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为gongye.xls的Excel文件。 示例2程序如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL {
/** Excel文件的存放位置。注意是正斜线*/
public static String fileToBeRead="D:/JTest/ gongye.xls";
public static void main(String argv[]){
try{
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
// 创建对工作表的引用。
// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
HSSFSheet sheet = workbook.getSheet("Sheet1");
// 也可用getSheetAt(int index)按索引引用,
// 在Excel文档中,第一张工作表的缺省索引是0,
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
// 读取左上端单元
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
// 输出单元内容,cell.getStringCellValue()就是取所在单元的值
System.out.println("左上端单元是: " + cell.getStringCellValue());
}catch(Exception e) {
System.out.println("已运行xlRead() : " + e );
}
}
} 设置单元格格式 在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式: 1、创建字体,设置其为红色、粗体:
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 2、创建格式
HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font); 3、应用格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("标题 "); 总之,如本篇文章所演示的一样,Java程序员不必担心Excel工作表中的数据了,利用Jakarta POI API,我们就可以轻易的在程序中存取Excel文档。
我决定用java Excel Api,我现在已经将jxl.jar添加到我的项目中了,这样在项目里就可以用import jxl.*了。
StringBuffer buf = new StringBuffer();
while(rs.next)
{
buf.append(","+rs.getString(1));
buf.append(","+rs.getString(2));
buf.append(","+rs.getString(3));
buf.append(","+rs.getString(4));
...
buf.append("\r");
}
rs.close();
然后将buf内容存为扩展名为.csv的文件就行了,excel就可以开它了。
java Excel Api不可以解决么?
你读取的数据库不是excel而是其他数据库吗?
假设mysql->excel 呵呵开两个connect一个读一个写(jdbc-odbc)就是了
将Result rs传入WriteData(ResultSet rs) 来进行查询结果的输出:
private void WriteData(ResultSet rs)
{
try
{
WritableWorkbook wwb = Workbook.createWorkbook(new File("d:/myexcel.xls"));
jxl.write.WritableSheet ws = wwb.createSheet("Stock Sheet 1", 0);
try
{
while (rs.next())
{
String productId = (String) rs.getString("product_Id");
String proNo = (String) rs.getString("product_No");
String proName = rs.getString("product_Name");
String description = rs.getString("description");
String abbreviation = rs.getString("abbreviation");
String proSpec = rs.getString("id_Value");
String onhandQty = rs.getString("quantity_on_hand");
String underwayQty = rs.getString("quantity_under_way");
String promisedQty = rs.getString("quantity_promised");
int i = rs.getRow();
jxl.write.Label labelA = new jxl.write.Label(i, 0, proNo);
jxl.write.Label labelB = new jxl.write.Label(i, 1, proName);
jxl.write.Label labelC = new jxl.write.Label(i, 2, description);
jxl.write.Label labelD = new jxl.write.Label(i, 3, abbreviation);
jxl.write.Label labelE = newjxl.write.Label(i, 4, proSpec);
ws.addCell(labelA);
ws.addCell(labelB);
ws.addCell(labelC);
ws.addCell(labelD);
ws.addCell(labelE);
}
wwb.write();
wwb.close();
} catch (....)
{....}
}catch (....)
{....}
}
可是执行到jxl.write.WritableSheet ws = wwb.createSheet("Stock Sheet 1", 0)这一句的时候,报错“COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0125E 函数顺序错误。 SQLSTATE=HY010”,这是为什么呢?难道这样写不对么?
剩下的问题就是:
1 while(rs.next())处出错“COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0125E 函数顺序错误。 SQLSTATE=HY010”。
2 怎样不在程序中指定Excel文件的名称而弹出window保存文件的对话框,让用户自己去保存Excel文件。
3 如果我的纪录太多,如何让sheet达到10000行就再生成新的sheet