如何从gcp存储桶读取XLS文件

时间:2019-12-10 11:44:40

标签: java spring-boot google-cloud-platform

我在存储区XLS上有文件,并且必须拉出文件并读取流上的数据并使用数据。我使用了CSV文件,这是我的代码:

try (ReadChannel reader = storage.reader(bucketName, fileName)) {   
            ByteBuffer bytes = ByteBuffer.allocate(BUFFER_SIZE);
            while (reader.read(bytes) > 0) {
                bytes.flip();
                // outChannel.write(bytes);
                set(new String(bytes.array(), "UTF-8"), fileName); 
                bytes.clear();
            }
        }

1 个答案:

答案 0 :(得分:0)

我认为这可能是您要寻找的。 GCS Input Channel

GcsService gcsService = GcsServiceFactory.createGcsService();
GcsFilename fileName = new GcsFilename("TestBucket", "Test1.xlsx"); 
GcsInputChannel readChannel = gcsService.openPrefetchingReadChannel(fileName, 0, BUFFER_SIZE);
InputStream inputStream = Channels.newInputStream(readChannel);

我还发现了一个有趣的解决方法,可能会对您有所帮助,在此answer中,您有一段代码将所有excel文件转换为CSV,以便您可以按需要正常操作它们。 / p>

编辑:错误在那里,因为它没有被初始化。看看我的代码编辑。

据我所知,您可能需要使用“ OutputChannel”而不是“ InputChannel”,但这是相同的概念。

希望这会有所帮助。