JAVAはPOIを利用してExcelの画像を解析して、そしてラベルの番号によって分類してフォルダを導入します
5583 ワード
ここではexcelテーブルのピクチャデータをエクスポートするユーティリティを提供します.
ユーザーのニーズ:XX環境保護会社はXXのウェブサイトからラベル番号のピクチャーを書き出して、そしてフォルダの形式に整理する必要があって、以前の試算によって人工操作は3ヶ月の時間を必要として、しかもこれは人類の仕事ではありませんて、1日の数時間繰り返しの新しいファイルのクリップを行って、CTRL-C、CTRL-Vの仕事、これは命がけで、人道的救死扶傷の精神に基づいて,わざわざ救済のための小さなプログラムを書いた.
ユーザーのニーズ:XX環境保護会社はXXのウェブサイトからラベル番号のピクチャーを書き出して、そしてフォルダの形式に整理する必要があって、以前の試算によって人工操作は3ヶ月の時間を必要として、しかもこれは人類の仕事ではありませんて、1日の数時間繰り返しの新しいファイルのクリップを行って、CTRL-C、CTRL-Vの仕事、これは命がけで、人道的救死扶傷の精神に基づいて,わざわざ救済のための小さなプログラムを書いた.
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.xssf.usermodel.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
/**
* Created by SunMing on 2016/9/4.
*/
public class Test {
private JPanel mainPanel;
private JButton but;
private JTextField textFieldExcelPath;
private JTextField textFieldFilePath;
public static void main(String[] args){
JFrame frame = new JFrame("ExcelPictureOutPutTool");
frame.setContentPane(new Test().mainPanel);
frame.setDefaultCloseOperation(3);
frame.pack();
frame.setSize(500,200);
frame.setVisible(true);
}
/**
* Created by SunMing on 2016/9/4.
* ,
*/
public static void getSheetPictrues07(XSSFSheet sheet, XSSFWorkbook workbook, String Path) throws IOException {
for (POIXMLDocumentPart dr : sheet.getRelations()) {
if (dr instanceof XSSFDrawing) {
XSSFDrawing drawing = (XSSFDrawing) dr;
java.util.List shapes = drawing.getShapes();
for (XSSFShape shape : shapes) {
XSSFPicture pic = (XSSFPicture) shape;
XSSFClientAnchor anchor = pic.getPreferredSize();
org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker ctMarker = anchor.getFrom();
String fileName = sheet.getRow(ctMarker.getRow()-2).getCell(3).toString().substring(5);
String pictureName = "unhandle.png";
String savePic = Path + fileName;
File file = new File(savePic);
if(!file.exists()){
file.mkdir();
pictureName = "handle.png";
}
String savePath = savePic + "\\" + pictureName;
FileOutputStream fos = new FileOutputStream(savePath);
XSSFPictureData data = pic.getPictureData();
fos.write(data.getData());
}
}
}
}
public Test(){
but.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String ExcelPath = textFieldExcelPath.getText();
String FilePath = textFieldFilePath.getText();
File file = new File(ExcelPath);
try {
FileInputStream fis = new FileInputStream(file);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
File fileRoot = new File(FilePath);
if(!fileRoot.exists()){
fileRoot.mkdir();
}
getSheetPictrues07(sheet, workbook,FilePath);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
}
}