保存は、データベースにExcelをアップロード

EduBw:

私は私のクライアントがサーバーにExcelファイルを送信するコードを持っています。サーバー(SpringBoot)は、「翻訳」する必要があるMultiplartFileExcelファイルに。その時から、データをデータベースに挿入する必要があります。

しかし、私はExcelを生成する必要はありませんではなく、直接データベースにスプレッドシートからデータを挿入する必要があります。

私が最初に試してみました:

@RequestMapping(value = "/insert", method = RequestMethod.POST, consumes = "multipart/form-data")
@ResponseBody
public MyMessage insertExcell(@RequestPart("typeFile") String typeFile,
        @RequestPart("uploadFile") MultipartFile multipart, @RequestPart("dataUser") DataUser dataUser) {

    BufferedReader br;
    List<String> result2 = new ArrayList<String>();

    try {
        String line;
        InputStream is = multipart.getInputStream();
        br = new BufferedReader(new InputStreamReader(is));
        while ((line = br.readLine()) != null) {
            result2.add(line);
        }
    } catch (Exception e) {

    }

    for (int i = 0; i < result2.size(); i++) {
        System.out.println("sentence" + result2.get(i));;
    }

出力は奇妙な記号を返します。

その後、再び私は試してみました:

InputStream inputStream;
        try {
            inputStream = multipart.getInputStream ();
            BufferedReader bufferedReader = new BufferedReader (new InputStreamReader (inputStream));
            String line;
            while ((line = bufferedReader.readLine()) != null)
            {
                System.out.println("linea era" + line);
            }

        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

コンソール出力は、奇妙な記号を示しています。

どのように私は読むことができるExcelファイルからのデータがアップロードされましたか?

ローレンス・B

私が理解から、あなたは、Excelファイルを読み、あなたのデータを取得し、データベースにそれを保存する必要があります。

Excelファイルは、さまざまな形式で保存されます。

  • Excel 2003のバイナリファイル形式(BIFF8)。
  • XMLベースのフォーマット(.xlsx形式の場合)

あなたは、単に、このようなAファイルを読み込むしようとすると、これはかなりの作業になります...

幸い、ApacheのPOIは役立つはずのライブラリを持っています。

あなたはそれをダウンロードすることができ、ここで

ここにあなたのExcelファイルを読み込む方法についての簡単な例を示します。

try (InputStream inputStream = multipartFile.getInputStream())
    {
        Workbook wb = WorkbookFactory.create(inputStream);
        // opening the first sheet
        Sheet sheet = wb.getSheetAt(0); 
        // read the third row
        Row row = sheet.getRow(2);
        // read 4th cell
        Cell cell = row.getCell(3);
        // get the string value
        String myValue = cell.getStringCellValue();

        // store in the database...         
    } catch (IOException e) {
        //TODO
    }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=137196&siteId=1