java读取excel文件运行问题,用的是jxl包。运行时选择的是Demo。不知道怎么运行,求高手指点。
命令行提示:Commandformat:Demo[-unicode][-csv][-hide]excelfileDemo-xml[-format]excelfileDem...
命令行提示:
Command format: Demo [-unicode] [-csv] [-hide] excelfile
Demo -xml [-format] excelfile
Demo -readwrite|-rw excelfile output
Demo -biffdump | -bd | -wa | -write | -formulas | -features | -escher | -escherdg excelfile
Demo -ps excelfile [property] [output]
Demo -version | -logtest | -h | -help 展开
Command format: Demo [-unicode] [-csv] [-hide] excelfile
Demo -xml [-format] excelfile
Demo -readwrite|-rw excelfile output
Demo -biffdump | -bd | -wa | -write | -formulas | -features | -escher | -escherdg excelfile
Demo -ps excelfile [property] [output]
Demo -version | -logtest | -h | -help 展开
1个回答
2012-12-10 · 知道合伙人数码行家
关注
展开全部
//Excel 数据 比对 系统
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelContrast {
static String file1 = "d://java//1.xls";
static String file2 = "d://java//2.xls";
static HashMap<Integer, String> hsMap1 = new HashMap<Integer, String>();
static HashMap<Integer, String> hsMap2 = new HashMap<Integer, String>();
static int found = 0;
public static void main(String[] args) {
System.out.println("欢迎使用Excel数据比对系统!");
System.out.println("Excel数据比对系统 开始运行。。。");
System.out.println("读取" + file1);
ReadExcelToHashMap(file1, hsMap1);
// System.out.println(hsMap1.size());
System.out.println("读取" + file1);
ReadExcelToHashMap(file2, hsMap2);
// System.out.println(hsMap2.size());
// System.out.println(hsMap1.values());
// System.out.println(hsMap2.values());
System.out.println("开始比对。。。");
server();
System.out.println("成功比对出" + found + "条不同数据");
System.out.println("Excel数据比对系统 正常退出。。。");
}
private static void server() {
int i = 0;
System.out.println("遍历比对" + file1);
while (i < hsMap1.size()) {
if (hsMap2.containsValue(hsMap1.get(i))) {
} else {
System.out.println(file1 + " 第" + (i + 1) + "行 "
+ hsMap1.get(i));
UpdateExcel(i, 0, hsMap1.get(i), file1);
UpdateExcel(i, 1, "稽核", file1);
found++;
}
i++;
}
i = 0;
System.out.println("遍历比对" + file2);
while (i < hsMap2.size()) {
if (hsMap1.containsValue(hsMap2.get(i))) {
} else {
System.out.println(file2 + " 第" + (i + 1) + "行 "
+ hsMap2.get(i));
UpdateExcel(i, 0, hsMap2.get(i), file2);
UpdateExcel(i, 1, "稽核", file2);
found++;
}
i++;
}
}
private static void ReadExcelToHashMap(String file,
HashMap<Integer, String> hsmap) {
try {
Workbook book = Workbook.getWorkbook(new File(file));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
// 得到第一列第一行的单元格
int i = 0;
while (!sheet.getCell(0, i).getContents().equalsIgnoreCase("")) {
hsmap.put(i, sheet.getCell(0, i).getContents());
i++;
}
book.close();
} catch (FileNotFoundException e) {
System.out.println("系统找不到指定的文件:" + file);
System.exit(0);
} catch (ArrayIndexOutOfBoundsException e) {
} catch (Exception e) {
e.printStackTrace();
}
}
static void test_hash() {
HashMap<Integer, String> hsMap = new HashMap<Integer, String>();
hsMap.put(3, "Value3");
hsMap.put(2, "Value2");
System.out.println(hsMap.get(2));
System.out.println(hsMap.values());
System.out.println(hsMap.containsKey(1));
System.out.println(hsMap.containsValue("Value3"));
System.out.println(hsMap.size());
}
static void UpdateExcel(int i, int j, String cell, String file) {
try {
// Excel获得文件
Workbook wb = Workbook.getWorkbook(new File(file));
// 打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File(file), wb);
// 添加一个工作表
WritableSheet ws = book.getSheet(0);
// 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
WritableFont font = new WritableFont(WritableFont.ARIAL, 15,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.RED);
WritableCellFormat cFormat = new WritableCellFormat(font);
Label labelC = new Label(j, i, cell, cFormat);
try {
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (Exception e) {
e.printStackTrace();
}
book.write();
book.close();
} catch (FileNotFoundException e) {
System.out.println("另一个程序正在使用此文件,进程无法访问。请您关闭EXECL");
System.exit(0);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelContrast {
static String file1 = "d://java//1.xls";
static String file2 = "d://java//2.xls";
static HashMap<Integer, String> hsMap1 = new HashMap<Integer, String>();
static HashMap<Integer, String> hsMap2 = new HashMap<Integer, String>();
static int found = 0;
public static void main(String[] args) {
System.out.println("欢迎使用Excel数据比对系统!");
System.out.println("Excel数据比对系统 开始运行。。。");
System.out.println("读取" + file1);
ReadExcelToHashMap(file1, hsMap1);
// System.out.println(hsMap1.size());
System.out.println("读取" + file1);
ReadExcelToHashMap(file2, hsMap2);
// System.out.println(hsMap2.size());
// System.out.println(hsMap1.values());
// System.out.println(hsMap2.values());
System.out.println("开始比对。。。");
server();
System.out.println("成功比对出" + found + "条不同数据");
System.out.println("Excel数据比对系统 正常退出。。。");
}
private static void server() {
int i = 0;
System.out.println("遍历比对" + file1);
while (i < hsMap1.size()) {
if (hsMap2.containsValue(hsMap1.get(i))) {
} else {
System.out.println(file1 + " 第" + (i + 1) + "行 "
+ hsMap1.get(i));
UpdateExcel(i, 0, hsMap1.get(i), file1);
UpdateExcel(i, 1, "稽核", file1);
found++;
}
i++;
}
i = 0;
System.out.println("遍历比对" + file2);
while (i < hsMap2.size()) {
if (hsMap1.containsValue(hsMap2.get(i))) {
} else {
System.out.println(file2 + " 第" + (i + 1) + "行 "
+ hsMap2.get(i));
UpdateExcel(i, 0, hsMap2.get(i), file2);
UpdateExcel(i, 1, "稽核", file2);
found++;
}
i++;
}
}
private static void ReadExcelToHashMap(String file,
HashMap<Integer, String> hsmap) {
try {
Workbook book = Workbook.getWorkbook(new File(file));
// 获得第一个工作表对象
Sheet sheet = book.getSheet(0);
// 得到第一列第一行的单元格
int i = 0;
while (!sheet.getCell(0, i).getContents().equalsIgnoreCase("")) {
hsmap.put(i, sheet.getCell(0, i).getContents());
i++;
}
book.close();
} catch (FileNotFoundException e) {
System.out.println("系统找不到指定的文件:" + file);
System.exit(0);
} catch (ArrayIndexOutOfBoundsException e) {
} catch (Exception e) {
e.printStackTrace();
}
}
static void test_hash() {
HashMap<Integer, String> hsMap = new HashMap<Integer, String>();
hsMap.put(3, "Value3");
hsMap.put(2, "Value2");
System.out.println(hsMap.get(2));
System.out.println(hsMap.values());
System.out.println(hsMap.containsKey(1));
System.out.println(hsMap.containsValue("Value3"));
System.out.println(hsMap.size());
}
static void UpdateExcel(int i, int j, String cell, String file) {
try {
// Excel获得文件
Workbook wb = Workbook.getWorkbook(new File(file));
// 打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File(file), wb);
// 添加一个工作表
WritableSheet ws = book.getSheet(0);
// 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
WritableFont font = new WritableFont(WritableFont.ARIAL, 15,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.RED);
WritableCellFormat cFormat = new WritableCellFormat(font);
Label labelC = new Label(j, i, cell, cFormat);
try {
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (Exception e) {
e.printStackTrace();
}
book.write();
book.close();
} catch (FileNotFoundException e) {
System.out.println("另一个程序正在使用此文件,进程无法访问。请您关闭EXECL");
System.exit(0);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询