哪两个API更易于读/写/编辑Excel工作表?这些API不支持CSV扩展吗?
使用JXL for file.xls和file.xlsx,我得到一个例外:
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:268)
at core.ReadXLSheet.contentReading(ReadXLSheet.java:46)
at core.ReadXLSheet.init(ReadXLSheet.java:22)
at core.ReadXLSheet.main(ReadXLSheet.java:72)
Run Code Online (Sandbox Code Playgroud)
两者都用于.xls和.xlsx扩展.我使用的Java版本是:JDK1.6
我正在使用JXL API处理应用程序,当我尝试使用eclipse IDE编译时,它工作正常,当我尝试在命令提示符下编译并显示以下异常时,同样不编译.
Extract.java:6: cannot access jxl.read.biff.BiffException bad class file: C:\Program Files\Java\jdk1.5.0_01\jre\lib\ext\jxl.jar(jxl/read/biff/BiffException.class)
class file has wrong version 50.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
import jxl.read.biff.BiffException;
^
1 error
Run Code Online (Sandbox Code Playgroud)
编辑:
我能够使用JDK 1.6执行.由于JDK 1.6还必须与较低版本兼容,为什么它不支持在JDK 1.5中编译的类文件.
由于POI具有更多功能,我从jxl切换到poi.但是,我无法处理以旧格式生成的xls文件.现在我收到此错误:
org.apache.poi.hssf.OldExcelFormatException:提供的电子表格似乎是Excel 5.0/7.0(BIFF5)格式.POI仅支持BIFF8格式(来自Excel版本97/2000/XP/2003)
现在我想将JXL和POI一起使用取决于xls版本,因此对于旧格式xls文件我将使用jxl而对于较新版本我将使用POI.这是一个好的解决方案吗?还有其他选择吗?
我无法使用jxl编辑现有的Excel工作表.它总是创造一个新的.任何人都可以帮我解决它.请提供一个小样本代码.
我想知道我是否可以将excel表的方向设置为从右到左......我正在使用JXL Api.
提前致谢
赏金是从右到左,而不是右对齐
我有一个代码可以从excel表中读取旧格式(97-2003).我对数据进行了一些更改,最终获得了2007格式的excel表.当我使用这个xlsx表而不是xls表时,我得到了这个:
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:268)
at readexcel.ReadExcel.readContent(ReadExcel.java:50)
at readexcel.ReadExcel.init(ReadExcel.java:25)
at readexcel.ReadExcel.main(ReadExcel.java:183)
Run Code Online (Sandbox Code Playgroud) 我想创建一个可附加的excel表.就像我有四列stream1 stream2 stream3 stream4
第一次我只插入数据第一列(stream1)之后,我想逐个完全填充其他列.
这是我正在使用的代码:
public void createFile(Jqueue stream1, Jqueue stream2, Jqueue stream3, Jqueue stream4) {
try {
String filename = "path";
boolean alreadyExists = (new File(filename)).exists();
HSSFRow rowhead = sheet1.createRow((short) 0);
rowhead.createCell((short) 0).setCellValue("Stream 1");
rowhead.createCell((short) 1).setCellValue("Stream 2");
rowhead.createCell((short) 2).setCellValue("Stream 3");
rowhead.createCell((short) 3).setCellValue("Stream 4");
int i = 1;
while (!stream1.isEmpty()) {
String urlstream1 = "";
String urlstream2 = "";
String urlstream3 = "";
String urlstream4 = "";
HSSFRow row = sheet1.createRow((short) i);
try {
if (stream1.size() > 0) { …
Run Code Online (Sandbox Code Playgroud) 我正在使用Jxls API
我现在可以创建,将数据列表传递给模板,根据需要创建excel输出表
但现在我必须合并具有相同值的列单元格
这是重复细胞的每个标签
<jx:forEach items="${dummyData}" var="dummy" groupBy="col1">
<jx:forEach items="${group.items}" var="myList123">
${myList123.col1} ${myList123.col2} ${myList123.col3} ${myList123.col4} ${myList123.col5} ${myList123.col6} ${myList123.col7}
</jx:forEach>
</jx:forEach>
Run Code Online (Sandbox Code Playgroud)
我正在使用JXL编写Excel文件.客户希望某列显示带小数点后一位的数字.他们还希望单元格类型为"数字".当我使用以下(测试)代码时,数字显示正确,但单元格类型为"自定义".
File excelFile = new File("C:\\Users\\Rachel\\Desktop\\TestFile.xls");
WritableWorkbook excelBook = Workbook.createWorkbook(excelFile);
WritableSheet excelSheet = excelBook.createSheet("Test Sheet", 0);
WritableFont numberFont = new WritableFont(WritableFont.ARIAL);
WritableCellFormat numberFormat = new WritableCellFormat(numberFont, new NumberFormat("#0.0"));
Number numberCell = new Number(0, 0, 25, numberFormat);
excelSheet.addCell(numberCell);
excelBook.write();
excelBook.close();
Run Code Online (Sandbox Code Playgroud)
如果我将数字格式更改为NumberFormats中的变量之一(例如NumberFormats.INTEGER),则单元格类型是正确的.但数字当然显示为整数.我在NumberFormats中找不到符合我需要的变量.
有人知道如何同时显示数字和细胞类型吗?我需要显示1位小数的所有数字(即使它们是整数).我无法切换到任何其他技术,我必须使用JXL.