2016-10-04 12 views
0

私は、ファイルパスを含む列と共にデータとともに複数の列を含むExcelシートを持っています。 extjsグリッドにアップロードすると、データベースに送信される前に、ファイルパスの列に基づいてBLOBデータを読み取る必要があります。私はフォームを持っていない、私はグリッドから送信ボタンをクリックしてデータを取得する必要があります。 Excelシートからローカルシステムのデータを読み取るにはどうすればよいですか。私はバックアップされた(Javaスプリングを使用して)イメージを読み込もうとしましたが、クライアントとサーバーの両方が単一のシステムで終了したように読んでいます。私はクライアント側からブロブを読みたい。どのように私はjavaでそれを行うことができます。いくつか提案してください。extjsのexcelシートからブロブを読み取る方法

PFA

答えて

0

プライベートの静的な無効GetShapePosition(HttpServletRequestのリクエスト){

try { 
    InputStream inp = new FileInputStream("D:/SVN_PROJECTS/WorkDevServer/EnrollSample.xls"); 
    Workbook wb = WorkbookFactory.create(inp); 
    HSSFSheet sheet = (HSSFSheet)wb.getSheetAt(0); 
    HashMap<String,byte[]> hashMap = new HashMap<String,byte[]>(); 
    HSSFPatriarch dravingPatriarch = sheet.getDrawingPatriarch(); 

    java.util.List<HSSFShape> shapes = dravingPatriarch.getChildren(); 

    for (HSSFShape shape : shapes) { 
    if (shape instanceof HSSFPicture) { 
    HSSFPicture hssfPicture = (HSSFPicture)shape; 
    int picIndex = hssfPicture.getPictureIndex(); 
    String filename = hssfPicture.getFileName(); 
    HSSFPictureData hssfPictureData = hssfPicture.getPictureData(); 
    byte[] b = hssfPictureData.getData(); 
    String s= hssfPictureData.getMimeType(); 
    HSSFClientAnchor hca = hssfPicture.getPreferredSize(); 
    System.out.println("  row : -> "+(hca.getRow1())+"  column : -> "+(hca.getCol1())); 
    hashMap.put(String.valueOf((hca.getRow1()))+String.valueOf((hca.getCol1())),b); 
    } 
    } 

    request.getSession().setAttribute("ImghashMap", hashMap); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

}

+1

あなたの答え – Mazz

+0

getDrawingPatriarchを(教えてください)我々はすべての画像を一覧表示することができるからHSSFPatriarchにオブジェクトを提供しますgetChildren()メソッドの助けを借りてシートを秀でる。そこから位置やバイトなどの画像の詳細を取得できます。imagename、mimeType – sangamesh

関連する問題