首页 新闻 会员 周边 捐助

NPOI excel 导入

0
悬赏园豆:20 [待解决问题]

NPOI 处理 2003 格式时,提示:not to be a valid OLE2 document ,另存就可以,有谁知道怎么用C# 代码实现吗

初入社会的小白的主页 初入社会的小白 | 初学一级 | 园豆:182
提问于:2023-06-12 15:36

你的excel文件是从其他地方导出的嘛?

不存在的马飞飞 1年前

@不存在的马飞飞: 是从别的系统导出的,然后再导入我们系统

初入社会的小白 1年前

@初入社会的小白: 是WEB系统不?你把后缀改成txt看看能不能直接打开。

不存在的马飞飞 1年前

@不存在的马飞飞: 这不清楚,这是从其他公司导出的数据,是可以打开的

初入社会的小白 1年前

@初入社会的小白: 我是想问你打开是二进制乱码还是什么其他的。一些比较旧的系统会利用Excel的兼容性导出Excel,但是里面实际的内容是html或者是一些其他的文本格式

不存在的马飞飞 1年前

@不存在的马飞飞: 里面内容是html格式的

初入社会的小白 1年前

@初入社会的小白: 那就对了,你现在拿到的根本就不是excel格式的内容,所以你用NPOI会报错。如果你的系统是WEB系统建议直接让你们前端处理一下提交。如果你的系统不是WEB或者是前端不想搞,那你自己解一下html也行。可以搞定客户的话让客户自己转一下反正是导出来的

不存在的马飞飞 1年前

@不存在的马飞飞: 可以强制将html格式转换为标准的excel格式吗?我现在后端都写好了(只支持另存的)

初入社会的小白 1年前

@初入社会的小白: 强制?NPOI反正不行。你手动另存就是一种转换。

不存在的马飞飞 1年前
< >
分享
所有回答(3)
1

你的excel文件是从其他地方导出的嘛?

不存在的马飞飞 | 园豆:-82 (初学一级) | 2023-06-12 16:03
0

当使用NPOI处理2003格式的Excel文件时,如果提示"not to be a valid OLE2 document"错误,可能是因为您正在尝试打开或读取一个无效的Excel文件。

以下是使用C#代码使用NPOI导入2003格式Excel文件的示例:

csharp
Copy code
using System;
using System.IO;
using NPOI.HSSF.UserModel;

// 导入2003格式的Excel文件
public void ImportExcel(string filePath)
{
try
{
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
HSSFWorkbook workbook = new HSSFWorkbook(fileStream); // 创建一个Workbook对象,对应Excel文件

        // 读取和处理Excel内容
        // ...

        workbook.Close(); // 关闭Workbook对象
    }
}
catch (Exception ex)
{
    Console.WriteLine("导入Excel出错:" + ex.Message);
}

}
上述示例中,我们使用HSSFWorkbook类从文件流中创建一个Workbook对象,然后可以读取和处理Excel的内容。确保您已经在项目中添加了NPOI的引用和命名空间。

如果您的Excel文件仍然无法打开,并出现"not to be a valid OLE2 document"错误,可能是因为该文件本身存在损坏或不完整。您可以尝试使用其他工具或方法打开该文件,确保其完整性,并尝试将其另存为一个新的Excel文件,然后再次尝试使用NPOI进行处理。

另外,如果您处理的是2007及更高版本的Excel文件(.xlsx格式),可以使用NPOI的XSSFWorkbook类来读取和处理。

Technologyforgood | 园豆:7535 (大侠五级) | 2023-06-12 22:55
0


注意对应好对象,可以下载实例看一下。

0Behavior | 园豆:25 (初学一级) | 2023-07-05 16:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册