NPOI 读取不支持数据流写入的excel 文件怎么解决? RRS feed

  • 问题

  • 看图片

     private void FileStream()/// 数据流直接写入

                FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("gb2312"));
                // string html = @"C:\Documents and Settings\Administrator\桌面\1.html";
                // sw.WriteLine(File.ReadAllText(CopyDate()));

     public void DateRead()//读取存储的文件
                FileStream fs = File.OpenRead(path);

               这里读取会出错, 要打开excel文件另存为2003 格式才能用, 不另存的话就会出错


            微软的EXCEL 自己打开也会给个提示框


    这是xls 另存时候的 图片

                HSSFWorkbook wk = new HSSFWorkbook(fs);   //把xls文件中的数据写入wk中

               fg = wk.Workbook.NumSheets.ToString();  fg = wk.GetSheetName(0)+"\n";  这里面的0  代表  表的个数 0 代表第一个
                ISheet sheet = wk.GetSheet(wk.GetSheetName(0));


    2017年1月15日 18:31


  • 你好,

    什么叫读取不支持数据流写入的excel 文件?你不是想用NOPI来操作Excel吗?


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact

    2017年1月16日 9:03
  • 知道问题了,一直不相信VS 给的提示,看了下提示 是支持格式的问题

    错误信息: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)

    把   HSSFWorkbook wk = new HSSFWorkbook(fs);

    改成 XSSFWorkbook wk = new XSSFWorkbook(fs); 就可以了

    应该数据流写入的 是 .xlsx 的数据模式但是 用的是.xls的后缀名,导致数据识别错误

    • 已标记为答案 ning050089 2017年1月16日 12:37
    • 取消答案标记 ning050089 2017年1月16日 12:51
    • 已编辑 ning050089 2017年1月16日 12:54
    • 已建议为答案 Bob Ding 2017年1月16日 13:26
    2017年1月16日 12:37