POI向Excel中插入数据后打开Excel就出现“文件错误,可能某些数据格式已丢失” 参考:http://www.ccw.com.cn/htm/center/prog/02_10_22_2.asp检查一下代码的其他地方是否有问题,导致插入后格式不正确。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 等于没有讲,这种基本方法还用得着讲,再说那个网页上边一个CELL_TYPE_NUMERIC字样都 找不到。 public class JakartaPoi_ExcelSimpleChart { public JakartaPoi_ExcelSimpleChart() { } public static void main(String[] args) throws IOException{ HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet =wb.createSheet("ChartSheet"); HSSFSheet sheet2 =wb.createSheet("ChartSheet2"); wb.setSheetName(0,"SimpleChartTest"); sheet2 = wb.getSheet("Sheet2"); byte[]data=new byte[]{(byte)0x14,(byte)0x15,(byte)0x16,(byte)0x17,(byte)0x18}; HSSFRow r = null; HSSFCell c = null; int columns=2; int rows=5; for (short i = (short)0; i < rows; i++) { r=sheet.createRow(i); for (short j = (short)0; j <columns ; j++) { c=r.createCell((short)j); if(j==0) c.setCellValue("Person"+i); else c.setCellValue(20+i); } } c=sheet.createRow(6).createCell((short)6); double value=0; c.setCellType(HSSFCell.CELL_TYPE_NUMERIC); c.setCellValue(value); c=sheet.createRow(6).createCell((short)7); value=123; c.setCellType(HSSFCell.CELL_TYPE_NUMERIC); c.setCellValue(value); FileOutputStream out = new FileOutputStream("SimpleChart.xls"); wb.write(out); out.close(); }}运行成功!没有问题! 我也是这么写的啊,也写了c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);写入是没问题了,但就是打开Excel文件时弹出一个对话框,提示文字格式已丢失。但是数字的确写了进去了。 请叫各位仁兄你们import 什么包? 你的excel是什么版本?(是2000?) 是Excel 97,版本上会有问题吗?但也可能以后就会用2000或XP了. 你把你的代码给我一份,让我来看看。我怎么没有遇到这样的问题!email: [email protected] 如果用程序新建一个excel问题时没有这种问题,但是如果你引入一个模版,再追加内容的时候会发生这样的问题.不知道如何解决 晕!!office2000,和楼主同样的问题。。--------------------------------------------------------------------------------import java.io.*;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.poifs.filesystem.*;class ReadingandRewritingWorkbooks{ public static void main (String args[]) throws IOException { POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("ReadingandRewritingWorkbooks.xls")); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row = sheet.getRow(2); HSSFCell cell = row.getCell((short)3); if (cell == null) cell = row.createCell((short)3); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue("test"); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("ReadingandRewritingWorkbooks.xls"); wb.write(fileOut); fileOut.close(); }} 楼主,你配好了ODBC数据源了么?用模板就得给出模板的地址啊 你的poi包版本是多少的?poi-1.5.1是会有这个问题,使用poi-1.8或poi-1.10吧,我用了感觉挺好的 to smiletuna(扁头鱼) 是1.5.1的问题吗?如果真是这样的话,一定高分送上。 用jxl(java excel api)吧,没这个问题. 哈哈,终于解决了.2.0的包的确可以解决这个问题.非常感谢 hurt75(海上风) 的提醒和大家的帮助.给分啦! java 程序打印中文文件出现乱码、、且格式不对 JAVA接口 那位大虾帮帮忙 JTable 的问题 窗口如何分栏 如何显示版权符号? 求大神介绍jvm的书 jbuilder7如何和jboss3.0连接?里面怎么把jboss加进去阿?? 菜鸟想学,各位大虾指点我该如何学习,我下的jb5为rar,这是什么呀 求助!自定义RandomChar 类产生随机字母写入文件产生乱码。 考考你的逻辑分析能力(很难的题目:)) 有人说.net比java快39倍,我不信,有没有知道.net和java的区别的
}
public static void main(String[] args) throws IOException{
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet =wb.createSheet("ChartSheet");
HSSFSheet sheet2 =wb.createSheet("ChartSheet2");
wb.setSheetName(0,"SimpleChartTest");
sheet2 = wb.getSheet("Sheet2");
byte[]data=new byte[]{(byte)0x14,(byte)0x15,(byte)0x16,(byte)0x17,(byte)0x18}; HSSFRow r = null;
HSSFCell c = null;
int columns=2;
int rows=5;
for (short i = (short)0; i < rows; i++) {
r=sheet.createRow(i);
for (short j = (short)0; j <columns ; j++) {
c=r.createCell((short)j);
if(j==0)
c.setCellValue("Person"+i);
else
c.setCellValue(20+i);
}
}
c=sheet.createRow(6).createCell((short)6);
double value=0;
c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
c.setCellValue(value);
c=sheet.createRow(6).createCell((short)7);
value=123;
c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
c.setCellValue(value);
FileOutputStream out = new FileOutputStream("SimpleChart.xls");
wb.write(out);
out.close();
}
}运行成功!没有问题!
也写了c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
写入是没问题了,
但就是打开Excel文件时弹出一个对话框,提示文字格式已丢失。
但是数字的确写了进去了。
但也可能以后就会用2000或XP了.
--------------------------------------------------------------------------------
import java.io.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.*;class ReadingandRewritingWorkbooks
{ public static void main (String args[]) throws IOException
{
POIFSFileSystem fs =
new POIFSFileSystem(new FileInputStream("ReadingandRewritingWorkbooks.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(2);
HSSFCell cell = row.getCell((short)3);
if (cell == null)
cell = row.createCell((short)3);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("test"); // Write the output to a file
FileOutputStream fileOut = new FileOutputStream("ReadingandRewritingWorkbooks.xls");
wb.write(fileOut);
fileOut.close();
}
}
用模板就得给出模板的地址啊
poi-1.5.1是会有这个问题,使用poi-1.8或poi-1.10吧,我用了感觉挺好的
如果真是这样的话,一定高分送上。
非常感谢 hurt75(海上风) 的提醒和大家的帮助.
给分啦!