المصدر: http://xiazai.VeVB.COm/201407/tools/java-excel-dependency(VeVB.COm).rar
برنامج Excel وبرنامج ExcelUtil.java:
الحزمة com.itjh.javaUtil;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.text.DecimalFormat;import java.util.LinkedList;import java.util.List;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.openxml4j.exceptions.InvalidFormatException ؛يستورد org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.DateUtil;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet ;import org.Apache.poi.ss.usermodel.Workbook;import org.apache.poi.ss.usermodel.WorkbookFactory;/** * قم بتنزيل برنامج Excel، قم بإنشاء نموذج Excel في Excel، Office 2007.<br/> *依赖于poi-3.9-20121203.jar,poi-ooxml-3.9-20121203.jar,poi-ooxml-schemas-3.9- * 20121203.jar,dom4j-1.6.1.jar<br/> * قم بكتابة ملف ExcelUtil<br/> * * @author اسم المنتج * @date 2014年07月03 */ public class ExcelUtil {// excel مسار السلسلة الخاصة = "";// قم بحذف ملف Excel، قم بحذف البيانات تلقائيًا.private boolean autoColumnWidth = false;/** * قم بحذف البيانات */public ExcelUtil() {}/** * مسار المسار * * @param path * excel路径 */public ExcelUtil(String path) {this.path = path;}/** * مسار المسار * excelUtil值. * * @param SheetOrder * تم حذفه، تم حذفه بواسطة 0. * @return List<Object[]> تم حذفه. * @throws IOException * تم حذف Excel بواسطة IO. * @throws FileNotFoundException * * @throws InvalidFormatException * @author انقر فوق * @date 2014 في 07 سبتمبر */public List<Object[]> read(intsheetOrder) throws FileNotFoundException,IOException, InvalidFormatException {FileInputStream fis = new FileInputStream(path);Workbook Workbook = WorkbookFactory.create(fis);if (fis!= null) {fis. Close();}ورقة = Workbook.getSheetAt(sheetOrder);// إرجاع المنتج excelList<Object[]> valueList = new LinkedList<Object[]>();// تم حذفه من القائمة لـ (صف الصف: ورقة) {// تم حذفه من Object[] RowObject = null;for (خلية الخلية: صف) {// cell.getCellType قم بتبديل نوع الخلية cell.getCellType (cell.getCellType()) {case Cell.CELL_TYPE_BOOLEAN:// قم بإدراج Boolean في صفrowObject = CollectionUtil.addObjectToArray(rowObject,cell.getBooleanCellValue());break;case Cell.CELL_TYPE_NUMERIC:// 先看是否是日期格式if (DateUtil.isCellDateFormatted(cell)) {// قم بالتسجيل فيrowObject = CollectionUtil.addObjectToArray(rowObject,cell.getDateCellValue());} else {DecimalFormat df = new DecimalFormat();// 单元格的值,替换掉,String value = df.format(cell.getNumericCellValue()).replace ("،، "")؛// قم بتجميعrowObject = CollectionUtil.addObjectToArray(rowObject,value);}break;case Cell.CELL_TYPE_FORMULA:// قم بتجميعrowObject = CollectionUtil.addObjectToArray(rowObject,cell.getCellFormula());break;case Cell.CELL_TYPE_STRING:/ / قم بإرجاع StringrowObject = CollectionUtil.addObjectToArray(rowObject, cell.getRichStringCellValue().toString());break;}}// قم بإدراج قائمة list.valueList.add(rowObject);}return valueList;}/** * * @paramsheetOrder * تم تسجيل الطلب، 0.0. * @param colum * تم تسجيل 1 开始 * @paramrow * قم بقراءة 1 مرة * @return إجابة. * @throws Exception * إجابة Excel. * @author ملاحظة * @date 2014 07 03 */ public String read(int SheetOrder, int colum, introw) يطرح استثناء {FileInputStream fis = new FileInputStream(path);Workbook Workbook = WorkbookFactory.create(fis);if (fis != null) {fis.إغلاق();}ورقة ورقة = Workbook.getSheetAt(sheetOrder); صفوف الصف = Sheet.getRow(row - 1);خلية الخلية =rows.getCell(colum - 1);محتوى السلسلة = cell.getStringCellValue();return content;}/** * قم بإرجاع البيانات إلى البيانات المخزنة في المخزون. * * @paramsheetOrder * قم بإرجاع البيانات إلى 0. * @param colum * 列 基于1 * @paramrow * 行 基于1 *param content * 将要被书写的内容. * @throws Exception * 书写后保存异常. . * @author 宋立君 * @تاريخ 2014年07月03日 */public void write(int SheetOrder, int colum, int Row, String content)throws Exception {FileInputStream fis = new FileInputStream(path);Workbook Workbook = WorkbookFactory.create(fis);if ( fis != null) {fis. Close();}ورقة الورقة = Workbook.getSheetAt(sheetOrder);صفوف الصف = Sheet.createRow(row - 1);خلية الخلية =rows.createCell(colum - 1);cell.setCellValue(content);FileOutputStream fileOut = FileOutputStream الجديد(path);workbook.write (fileOut);fileOut.إغلاق();}/** * لا داعي للقلق بشأن هذا الأمر. * * @paramsheetOrder * تم إلغاء الطلب * @return int . * @throws IOException * تم حذف Excel من Excel . * @throws InvalidFormatException * @author . * @date 2014 07 03 */public int getSheetLastRowNum(intsheetOrder) throws IOException,InvalidFormatException {FileInputStream fis = new FileInputStream(path);Workbook Workbook = WorkbookFactory.create(fis);if (fis != null) {fis.إغلاق();}ورقة = Workbook.getSheetAt (sheetOrder);returnsheet.getLastRowNum();}/** * قم بإدراج البيانات في ملف Excel، قم بتحديد مسار المسار * * @param SheetName * قم بإدراج الورقة * @param fieldName * قم بتسجيل الدخول * @param data * * @throws IOException * @author 宋立君 * @date 2014年07月03 */public void makeExcel(String SheetName, String[] fieldName,List<Object[]> data) يلقي IOException {// قم بتثبيت مصنف HSSFWorkbook = makeWorkBook(sheetName, fieldName, data);// قم بتحديد String filePath = path.substring(0, path.lastIndexOf("//"));// قم بإخراج الملف File file = new File(filePath);// System.out.println(path+"-----------"+file.exists());if (!file .exists())file.mkdirs();FileOutputStream fileOut = جديد FileOutputStream(path);workbook.write(fileOut);fileOut.إغلاق();}/** * تم تسجيل الدخول إلى ملف excel. * * @param excelName * قم بتسجيل الدخول إلى ملف Excel * @param SheetName * قم بإدراج ورقة البيانات * @param fieldName * إرسال البيانات * @param data * إرسال البيانات * استجابةparam * الاستجابة * @throws IOException * إرسال IO إلى * @author إرسال * @date 2014年07月03 */public void makeStreamExcel(String excelName, String SheetName,String[] fieldName, List<Object[]> data,HttpServletResponse Response) throws IOException {OutputStream os = null;response.reset(); // الاستجابة لـ os = Response.getOutputStream(); // 取得输出流response.setHeader("Content-disposition", "attachment; filename="+ new String(excelName.getBytes(), "ISO-8859-1")); // قم بتنزيل استجابة الاستجابة.setContentType("application/msexcel"); // قم بكتابة HSSFWorkbook Workbook = makeWorkBook(sheetName, fieldName, data);os.flush();workbook.write(os);}/** * * * @paramsheetName * قم بإدراج اسم الحقل * @param fieldName * إرجاع البيانات * @param data * * @return HSSFWorkbook * @author 宋立君 * @date 2014年07月03日 */private HSSFWorkbook makeWorkBook(String SheetName, String[] fieldName,List<Object[]> data) {// قم بتجميع البيانات، قم بإجراء HSSFWorkbook Workbook = new HSSFWorkbook(); ورقة عمل ورقة العمل الخاصة بـ HSSF = Workbook.createSheet();// قم بعمل ورقة عمل في ورقة العمل، قم بكتابة UTF_16workbook.setSheetName(0,sheetName);// استخدم HSSFRow Row = Sheet.createRow(0);// قم بتكوين خلية HSSFCell;// قم بتحديد موقع الخلية for (int i = 0; i < fieldName.length; i++) {// إنشاء خلية الخلية =row.createCell((short) i);// قم بتعيين الخلية إلى الخلية cell.setCellType(HSSFCell.CELL_TYPE_STRING);// قم بإلغاء تحديد موقع الخلية، وحدد UTF_16 // cell.setEncoding(HSSFCell.ENCODING_UTF_16);// قم بتعيين الخلية إلى cell.setCellValue(new HSSFRichTextString(fieldName[i]));// قم بتحديد طول collength[i] = fieldName[i].getBytes().length;}// قم بتحديد سلسلة String tempCellContent = "";// قم بتحديد حجم الملف، وقم بحذف ملف Excel for (int i = 0; أنا < data.size ()؛ i++) {Object[] tmp = data.get(i);// 生成一行row = Sheet.createRow(i + 1);for (int j = 0; j < tmp.length; j++) {cell = Row. createCell((قصيرة) ي);// قم بتعيين Stringcell.setCellType(HSSFCell.CELL_TYPE_STRING);tempCellContent = (tmp[j] == null) ? "" : tmp[j].toString();cell.setCellValue(new HSSFRichTextString(tempCellContent));// 如果自动调整列宽度.if (autoColumnWidth) {if (j >= collength.length) { // collength = CollectionUtil.addObjectToArray(collength,tempCellContent.getBytes().length);} else {// collength[j] < tempCellContent.getBytes(). length) {collength[j] = tempCellContent.getBytes().length;}}}}}// قم بتحديد العرض.if (autoColumnWidth) {// قم بتحديد ما هو مطلوب من أجل تحديد for (int i = 0; i < fieldName.length; i++) {sheet.setColumnWidth(i, collength[i] * 2 * 256);}}مصنف الإرجاع;}/** * العنوان: قم بكتابة برنامج Excel، قم بكتابة ما تريد فعله، قم بكتابة خطأ. * * @author تأليف * @ تاريخ 2014/07/03 * @param autoColumnWidth * صحيح خطأ */public void setAutoColumnWidth(boolean autoColumnWidth) {this.autoColumnWidth = autoColumnWidth;}}