我正在尝试使用jxl创建一个新的Excel文件,但我很难在他们的API文档和在线中找到示例。
答案 0 :(得分:11)
经过一段时间的混乱后,我终于发现了一些有用的东西,看到这里还没有找到解决方案,所以这就是我发现的:
try {
String fileName = "file.xls";
WritableWorkbook workbook = Workbook.createWorkbook(new File(fileName));
workbook.createSheet("Sheet1", 0);
workbook.createSheet("Sheet2", 1);
workbook.createSheet("Sheet3", 2);
workbook.write();
workbook.close();
} catch (WriteException e) {
}
答案 1 :(得分:3)
我知道这是一个非常古老的问题。但是,我想我可以提供一个也添加单元格值的示例:
/**
*
* @author Almir Campos
*/
public class Write01
{
public void test01() throws IOException, WriteException
{
// Initial settings
File file = new File( "c:/tmp/genexcel.xls" );
WorkbookSettings wbs = new WorkbookSettings();
wbs.setLocale( new Locale( "en", "EN" ) );
// Creates the workbook
WritableWorkbook wwb = Workbook.createWorkbook( file, wbs );
// Creates the sheet inside the workbook
wwb.createSheet( "Report", 0 );
// Makes the sheet writable
WritableSheet ws = wwb.getSheet( 0 );
// Creates a cell inside the sheet
//CellView cv = new CellView();
Number n;
Label l;
Formula f;
for ( int i = 0; i < 10; i++ )
{
// A
n = new Number( 0, i, i );
ws.addCell( n );
// B
l = new Label( 1, i, "by" );
ws.addCell( l );
// C
n = new Number( 2, i, i + 1 );
ws.addCell( n );
// D
l = new Label( 3, i, "is" );
ws.addCell( l );
// E
f = new Formula(4, i, "A" + (i+1) + "*C" + (i+1) );
ws.addCell( f );
}
wwb.write();
wwb.close();
}
}
答案 2 :(得分:2)
首先,您需要将Jxl Api放入java目录,从http://www.andykhan.com/下载JXL api解压缩,复制jxl并粘贴如C:\ Program Files \ Java \ jre7 \ lib \ ext。
try {
String fileName = "file.xls";
WritableWorkbook workbook = Workbook.createWorkbook(new File(fileName));
WritableSheet writablesheet1 = workbook.createSheet("Sheet1", 0);
WritableSheet writablesheet2 = workbook.createSheet("Sheet2", 1);
WritableSheet writablesheet3 = workbook.createSheet("Sheet3", 2);
Label label1 = new Label("Emp_Name");
Label label2 = new Label("Emp_FName");
Label label3 = new Label("Emp_Salary");
writablesheet1.addCell(label1);
writablesheet2.addCell(label2);
writablesheet3.addCell(label3);
workbook.write();
workbook.close();
} catch (WriteException e) {
}
答案 3 :(得分:0)
不确定是否需要坚持使用JXL,但处理Excel文件的最佳库是Apache's POI HSSF。
我认为我提供的网站上有很多例子,但是如果你需要进一步的帮助,请告诉我。我可能会举几个例子。
出于好奇,POI代表可怜的混淆接口,HSSF是可怕的SpreadSheet格式。您可以看到Apache喜欢Microsoft Office格式的程度: - )
答案 4 :(得分:-1)
public void exportToExcel() {
final String fileName = "TodoList2.xls";
//Saving file in external storage
File sdCard = Environment.getExternalStorageDirectory();
File directory = new File(sdCard.getAbsolutePath() + "/javatechig.todo");
//create directory if not exist
if(!directory.isDirectory()){
directory.mkdirs();
}
//file path
File file = new File(directory, fileName);
WorkbookSettings wbSettings = new WorkbookSettings();
wbSettings.setLocale(new Locale("en", "EN"));
WritableWorkbook workbook;
try {
workbook = Workbook.createWorkbook(file, wbSettings);
//Excel sheet name. 0 represents first sheet
WritableSheet sheet = workbook.createSheet("MyShoppingList", 0);
Cursor cursor = mydb.rawQuery("select * from Contact", null);
try {
sheet.addCell(new Label(0, 0, "id")); // column and row
sheet.addCell(new Label(1, 0, "name"));
sheet.addCell(new Label(2,0,"ff "));
sheet.addCell(new Label(3,0,"uu"));
if (cursor.moveToFirst()) {
do {
String title =cursor.getString(0) ;
String desc = cursor.getString(1);
String name=cursor.getString(2);
String family=cursor.getString(3);
int i = cursor.getPosition() + 1;
sheet.addCell(new Label(0, i, title));
sheet.addCell(new Label(1, i, desc));
sheet.addCell(new Label(2,i,name));
sheet.addCell(new Label(3,i,family));
} while (cursor.moveToNext());
}
//closing cursor
cursor.close();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
workbook.write();
try {
workbook.close();
} catch (WriteException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}