Apache POIを使用していますが、xlsx
ファイルをHTTP要求として送信し、応答として取得しようとしています。私はjayway restassured
を使ってHTTPリクエストを作成しています。ここで Apache POIを使用してbyteArrayをXSSFWorkbookに変換します。
File file = new File("path");
String response = given().multipart(file).when().post("URL").getBody().asString();
byte[] bytes = response.getBytes("ISO-8859-1");
InputStream stream = new ByteArrayOutputStream(bytes);
try
{
XSSFWorkbook workbook = new XSSFWorkbook(stream);
}
catch(Exception e){
e.printStackTrace();
}
応答が
XSSFWorkbook workBook; //this workBook has the workbook sent as HTTP request
//code to make changes in workBook
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
workBook.write(outStream);
byte[] byteArray = outStream.toByteArray();
String responseBody = new String(byteArray, "ISO-8859-1");
context.response().putHeader("Content-Type", "multipart/form-data").setStatusCode(200).end(responseBody);
ので、リクエストのために生成されたコードがあるの送信コードの一部です要求としていくつかの変更を加えて、それを文字列レスポンスとして取得してからxssfworkbookに変換して、xlsx
ファイルを送信します。
XSSFWorkbook workbook = new XSSFWorkbook(stream);
LINE-Iは、次のエラーを取得するバック変換するときに私が手にエラーが
java.util.zip.ZipException: invalid code lengths set