我想创建一个Excel文件并写入数据就像用Java编写文本文件一样.我试图将文件扩展名更改.txt为.xls.但我想在Excel文件中加粗字母.我怎样才能做到这一点?
我尝试过使用JXL API,但每次创建标签时都要添加标签.不能编辑表的行和列吗?
我试图从我的.csv文件中获取单元格数据,但它收到错误:jxl.read.biff.BiffException:无法识别OLE流
我不明白如何解决这个问题,请给我一些解决方案,这段代码是针对jxl api的,是对.csv的api支持吗?
代码:
public void read() throws IOException, BiffException {
File inputWorkbook = new File(inputFile);
try
{
w = Workbook.getWorkbook(inputWorkbook.getAbsoluteFile());
// Get the first sheet
Sheet sheet = w.getSheet(0);
// Loop over first 10 column and lines
for (row = 1; row < sheet.getRows(); row++)
{
ReadExcelLotSizeEntity readExcelLotSizeEntity =new ReadExcelLotSizeEntity();
cell = sheet.getCell(1,row);
type= cell.getType();
if (cell.getType() == CellType.LABEL)
{
symbol=cell.getContents();
System.out.println(":::::::::::::::::"+symbol);
readExcelLotSizeEntity.setSymbol(symbol);
}
int col=2;
cell = sheet.getCell(col,row);
while(!cell.getContents().equals("")||cell.getContents()!=null)
{
System.out.println("||||||||||||||||"+cell.getContents());
cell=sheet.getCell(col,row);
col++;
}
lotSize= new Double(cell.getContents());
readExcelLotSizeEntity.setLotSize(lotSize); …Run Code Online (Sandbox Code Playgroud) 我正在使用JExcel在GAE/Java应用程序中加载excel文件,如下所示:
上传文件的html表单如下:
<form id="" action="/save" method="post" enctype="multipart/form-data" accept-charset="ISO-8859-1">
<input name="file" type="file" value="load"/>
<input type="submit"value="load excel"/>
</form>
Run Code Online (Sandbox Code Playgroud)
在服务器上我有:
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
FileItemStream item = iterator.next();
InputStream stream = item.openStream();
if (!item.isFormField()) {
//if it's not a form field it's a file
Workbook workbook = Workbook.getWorkbook(stream);
...
String name = sheet.getCell(COL_NUMBER, row).getContents();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我在单元格中写入类似" cityó "的内容,当它在服务器中读取时,变量名称是" city"?".编码不正常.
我试图更改accept-charset ="ISO-8859-1"(将其设置为utf-8或删除它)但没有成功.
谁能告诉我怎么能解决这个问题呢.
谢谢
我的程序成功创建并填充了Excel(.xls)文件.一旦创建,我希望在系统的默认程序(在我的情况下为Excel)中打开新文件.我怎样才能做到这一点?
对于我想在记事本中打开txt文件的旧程序,我使用了以下内容:
if (!Desktop.isDesktopSupported()) {
System.err.println("Desktop not supported");
// use alternative (Runtime.exec)
return;
}
Desktop desktop = Desktop.getDesktop();
if (!desktop.isSupported(Desktop.Action.EDIT)) {
System.err.println("EDIT not supported");
// use alternative (Runtime.exec)
return;
}
try {
desktop.edit(new File(this.outputFilePath));
} catch (IOException ex) {
ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将此代码用于Excel文件时,它会给我以下错误:
java.io.IOException: Failed to edit file:C:/foo.xls
Run Code Online (Sandbox Code Playgroud)
建议?
我正在使用JExcelApi生成XLS文件.从jxl.format.Colour,我看到如何获得"标准Excel调色板"中的任何颜色,但不知道如何创建新颜色(例如,给定其RGB).
但在Excel本身,我可以选择任何颜色.
我只是错过了吗?JExcelApi中有没有办法选择任意颜色?我现在正在使用一种简单的找到最接近标准色的方法,这可以,但不是很好.
我正在使用Java Spring和jxl在服务器端创建Excel工作簿.需要在Excel中显示的数据包含已格式化的数字.我在用
WritableCellFormat wcf = new WritableCellFormat();
wcf.setAlignment(Alignment.RIGHT);
....
....
sheet.addCell(new Label(j, i + 1, xxx, wcf));
//where xxx is a string which is a number already formatted
Run Code Online (Sandbox Code Playgroud)
在下载的excel文件中,所有这些数字都存储为文本,因此Excel不能在它们上使用公式,它会发出警告"数字存储为文本",我必须做'转换为数字'.
在jxl中,我们可以传递字符串并告诉它们将它们解释为数字吗?我拥有的所有数字都是使用$,%,千位分隔符格式化的有效数字.我不想将它们转换为有效数字,并在导出到excel时再次给它们格式化.
请帮忙.谢谢.
我喜欢一个很好的原生Python库来编写XLS,但它似乎并不存在.令人高兴的是,Jython确实如此.
所以我想在jexcelapi和Apache HSSF之间做出决定:http ://www.andykhan.com/jexcelapi/tutorial.html#writing http://poi.apache.org/hssf/quick-guide.html
(我不能使用COM自动化,因为我不在Windows上,即使我是,我也买不起Office许可证.)
我最初的想法是POI/HSSF非常彻底,但也非常Java--一切似乎都比它需要的更难.良好的文档,但我的头痛害试图弥合它描述的内容和我需要完成的之间的差距.
jexcepapi似乎有一个更简单,更好(对我来说)的界面,但没有很好的文档或社区.
你会用哪个,为什么?
我正在处理一些相当复杂的excel文件,并遇到了复制工作表的问题.每当我尝试复制不完全空白的工作表时,我都会收到以下消息:
Exception in thread "main" java.lang.NullPointerException
at jxl.write.biff.WritableSheetCopier.shallowCopyCells(WritableSheetCopier.java:499)
at jxl.write.biff.WritableSheetCopier.copySheet(WritableSheetCopier.java:239)
at jxl.write.biff.WritableSheetImpl.copy(WritableSheetImpl.java:1622)
at jxl.write.biff.WritableWorkbookImpl.copySheet(WritableWorkbookImpl.java:987)
at excelCalc.main(excelCalc.java:18)
Run Code Online (Sandbox Code Playgroud)
我想知道这里的问题是什么.为什么会有一个".copySheet("函数,如果它不能用于包含信息的工作表.为了尝试以更简单的比例重现问题,我创建了你在下面看到的代码.我希望输出看是2个相同的表格,单元格(0,0)的标签是"test".一个名为"Flows"的表格,另一个是"复制".有关为何给出这个空指针的任何想法?
import java.io.File;
import jxl.*;
import jxl.write.*;
public class excelCalc
{
public static void main(String[] args) throws Exception
{
WritableWorkbook outputBook = Workbook.createWorkbook(new File("C:/Users/Kevin Brey/CS243/ExcelTest/files/output", "output.xls"));
WritableSheet rSheet = outputBook.createSheet("Flows", 0);
rSheet.addCell(new Label(0, 0, "test"));
outputBook.copySheet(0, "copy", 0);
outputBook.write();
outputBook.close();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:此代码也提供相同的异常:
import java.io.File;
import jxl.*;
import jxl.write.*;
public class excelCalc
{
public static void main(String[] args) throws Exception
{
WritableWorkbook outputBook = …Run Code Online (Sandbox Code Playgroud) 我需要生成一个excel表报告,看起来像以下模板 -

我知道这可以使用像JExcelApi和的库来完成Apache POI.但是,我想知道是否有办法通过编写类似于编写Apache Velocity模板来发送电子邮件的模板来完成此操作.
如果有一个标准的,良好实践的方法来生成这样的报告是什么?
我打算将JTable的内容移动到Microsoft Excel工作表中.Excel工作表应具有一些格式规范.例如,如果列的值为"A",则它应为绿色.如果它是'B'红色.
我处于分析阶段.我应该使用哪个罐子?数据不是很大.性能不是一个大问题.