我打算将JTable的内容移动到Microsoft Excel工作表中.Excel工作表应具有一些格式规范.例如,如果列的值为"A",则它应为绿色.如果它是'B'红色.
我处于分析阶段.我应该使用哪个罐子?数据不是很大.性能不是一个大问题.
我尝试使用JExcelAPI(v.2.6.3)在Java应用程序中生成一些Excel工作表,并且无法正确生成日期单元格.例如,对于代码:
WritableWorkbook workbook = null;
workbook = Workbook.createWorkbook(new File("C:\\tmp\\tests.xls"));
try {
Date date = new Date();
final WritableSheet sheet = workbook.createSheet("Sheet", 0);
DateTime dateTime = new DateTime(0, 0, date);
sheet.addCell(dateTime);
System.out.println("Date1 is " + date);
final Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2007);
cal.set(Calendar.MONTH, Calendar.OCTOBER);
cal.set(Calendar.DAY_OF_MONTH, 17);
cal.set(Calendar.HOUR_OF_DAY, 8);
cal.set(Calendar.MINUTE, 15);
date = cal.getTime();
dateTime = new DateTime(0, 1, date);
sheet.addCell(dateTime);
System.out.println("My birthday is on " + date);
} finally {
workbook.write();
workbook.close();
}
Run Code Online (Sandbox Code Playgroud)
输出(在控制台上)是:
Date1是星期一08
月11日11:14:45 GMT + 01:00 2009 …
我创建了一个jexcelApi类的包装器,可以轻松地将对象列表导出到Excel.为了最小化对象创建,单元格格式创建为静态字段,并在连续的导出调用中重用.但我的日期格式有问题 - 第一个调用工作正常,但在所有连续导出日期单元格中都有数字格式而不是日期格式.如果我为日期格式创建一个新对象而不是使用静态字段,一切都很好.有没有理由为不同的工作表或工作簿使用相同的格式对象失败?
这是代码,简化了异常处理,省略了其他数据类型,可能还缺少一些导入:
ExcelCellGenerator.java:
import jxl.write.WritableCell;
public interface ExcelCellGenerator<T> {
WritableCell getCell(int col, int row, T arg);
}
Run Code Online (Sandbox Code Playgroud)
ExcelCellGeneratorFactory.java:
import jxl.write.DateFormat;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.NumberFormat;
import jxl.write.NumberFormats;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import ExcelExporter.DateTimeExtractor;
final class ExcelCellGeneratorFactory {
private ExcelCellGeneratorFactory() {}
private static final WritableCellFormat DATE_FORMAT = new WritableCellFormat ( new DateFormat ("dd MMM yyyy hh:mm:ss")); // reusing this field fails
static public <T> ExcelCellGenerator<T> createDateCellGenerator(final DateTimeExtractor<T> extractor) {
return new ExcelCellGenerator<T>() {
public WritableCell getCell(int col, int …Run Code Online (Sandbox Code Playgroud) 你们建议用什么库从Java编写excel文件?它必须是纯Java解决方案,因此它可以在任何平台上运行.
谢谢,格雷
编辑:它不能是CSV文件格式.它必须有列标题,数据格式类型等.
我有一项要求涉及从Excel电子表格中读取值,并填写电子表格供用户修改并重新上传到我们的应用程序.其中一个单元格包含5个字符的文本字符串,可以是字母,数字或两者的组合.其中一些字符串仅包含数字,并以零开头.因此,单元格类型为Text; 但是,当我使用Apache POI或JExcel填充电子表格供用户修改时,它总是设置为单元格类型常规.
有没有办法使用这些库中的任何一个,或者我还没有看到的其他一些excel api来指定一个单元格是否有Text类型?
我需要做的就是打开一个MS excel表 - 不确定哪种(2003年,2007年等) - 并将每行中的信息解析为一个对象.我只执行只读操作.
最适合此任务的Apache POI,JExcelAPI或OpenXLS?
我不想再发现api了,但如果你确定这些都不是最好的那么我会接受你的意见.
目前我正在开发android开发.根据要求,应用程序应该能够读取Excel文件以进行数据输入.
正如其他人从这个主题开始,我已经使用Java Excel Api和Apache POI,但两者都需要进行一些修改以满足我的要求:
JExcel API:
- 不支持XLSX
Apache POI:
- 支持XLS文件
- 要在Dalvik中支持XLSX,您需要克服64K和javax库,或使用端口版本(即来自Andrew Kondratev)
- 文件大小将增加2.4MB
但是我们还有其他选择在Android 4或更低版本中使用Excel文件吗?
我正在尝试编写一个程序,将数据附加到Java中的Excel文件中.我达到了以下代码.但它会重写Excel文件中的内容,而不是附加到它.请帮我完成这个.
public class jExcel
{
static WritableWorkbook workbook;
public static void main(String args[])throws Exception
{
workbook = Workbook.createWorkbook((new File("D:\\0077\\my2.xls")));
WritableSheet sheet = workbook.createSheet("First Sheett",1);
Label label = new Label(5,2,"ssssssssss");
sheet.addCell(label);
workbook.write();
workbook.close();
}
}
Run Code Online (Sandbox Code Playgroud) 我在使用JExcel时遇到字符编码问题.我的应用程序从模板创建一个excel文档,并在将数据发送给用户之前用数据库中的数据(用当前和以前的会话用户输入填充)填充它.在最后的文件,非ASCII字符从模板如é,è,à,或°不正确呈现(所生成的文档中,它们适当地显示在模板)和由被代替替换?而来自数据库被正确编码.
我使用UTF-8进行用户输入(并输出到查看层)以及数据库存储.
我在生成文件的类中使用此代码:
private void createFile(Arguments...)
throws IOException, BiffException, RowsExceededException, WriteException
{
File XLSFile = new File(MyPath);
WorkbookSettings XLSSettings = new WorkbookSettings()
XLSSettings.setEncoding(Constants.TEMPLATE_ENCODING)
// Constants.java is a class containing only app-wide constants declared as public static final
Workbook template = Workbook.getWorkbook(
new File(Constants.TEMPLATE_PATH));
WritableWorkbook userDocument =
Workbook.createWorkBook(XLSFile,template,XLSSettings);
template.close();
WritableSheet sheet = userDocument.getSheet(0);
...
Code that fills my workbook and sheet by creating new Labels and
adding them to …Run Code Online (Sandbox Code Playgroud) 是否可以从excell工作表中读取单元格的格式并确定哪些单词是粗体还是斜体?我可以读取和写入单元格,我也知道JExcel可以写入格式化的单元格.在格式化的单元格中,我的意思是文本是斜体或粗体.
是否有可能读取单元格数据并确定哪些单词是粗体?例如,我将在单元格中有这个:
" 来自一个excel小区的示例文本"
我想知道字符串"excel cell"是粗体,字符串"sample"是Italic.这在JExcel中是否可行,如果不是,我将如何在Java中执行此操作?有人可以推荐一个API吗?也许更好的方法是削减xml文件.