【发布时间】:2018-11-25 05:13:53
【问题描述】:
我正在将内容从一个 DMS(文件网)迁移到另一个(Webcenter 内容), 在这个过程中,我在 Filenet 中遇到了一个扩展名为 .xls(内容类型为 application/vnd.ms-excel)的 excel 文件。
我得到了文件的 InputStream 并将其写入(文件 IO 操作)到一个临时位置,然后再将其推送到 Webcenter Content。
问题是当我下载并打开Excel文件F1.xls的Filenet版本时,它提示我文件格式不匹配和扩展名变暖,但仍然打开文件并显示内容。
但我推送到 Webcenter Content (WCC.xls) 的版本的行为方式不同。
它提示相同的消息,但在忽略提示后它显示垃圾字符,如果我将 WCC.xls 的扩展名更改为 WCC.xlsx,它显示看起来很好。
我可以做些什么来在运行时识别这些东西,任何帮助将不胜感激。
这是从我本地截取的代码
InputStream initialStream;
try {
initialStream = new FileInputStream(
new File("C:\\Users\\xxxxxx\\Desktop\\Utils\\YYYYY\\FN1.xls"));
FileOutputStream oStream = null;
oStream = new FileOutputStream("C:\\Users\\xxxxxx\\Desktop\\Utils\\YYYYY\\WCC1.xls");
FilenetConnectionUtil fCU = new FilenetConnectionUtil();
fCU. writeFileToTempLocation("xx","xx",initialStream,oStream);
oStream.flush();
oStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/* Write Method*/
public void writeFileToTempLocation(String filename, String filepath, InputStream inStream,FileOutputStream oStream) throws IOException {
// FileOutputStream oStream = new FileOutputStream(filepath);
byte[] buffer = new byte[1024];
int n;
if(inStream != null) {
while ((n = inStream.read(buffer)) != -1) {
oStream.write(buffer);
}
}
oStream.flush();
}
谢谢, 拉胡尔·杜帕拉
【问题讨论】:
-
我刚刚google了一下,发现Apache POI library可以用java打开MS Office文档。您可以尝试使用该库打开文件,如果它对您大喊大叫,您就知道该文件是错误的