EduBw:
私は私のクライアントがサーバーにExcelファイルを送信するコードを持っています。サーバー(SpringBoot)は、「翻訳」する必要があるMultiplartFile
Excelファイルに。その時から、データをデータベースに挿入する必要があります。
しかし、私は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
}