当前位置:编程学习 > C#/ASP.NET >>

vb.net打开excel 提示 “不能识别的文件格式”

vb.net写的程序来操作excel文件,在一些电脑上会出现“不能识别的文件格式”报错,有些电脑则没问题。

都是win7系统 excel是2007或者2010

求助。。。。。

vb.net excel 不能识别的文件格式, --------------------编程问答-------------------- 在win7里出现这个错误可能是权限的问题,如果你将文件放在程序所在的目录,就不会出现这个问题,你试一下。放在XP环境里也测试一下,如果正常,那一定是权限问题,要么放在程序所在的目录,要么要以管理员的权限来运行程序。 --------------------编程问答--------------------
引用 1 楼 wind_cloud2011 的回复:
在win7里出现这个错误可能是权限的问题,如果你将文件放在程序所在的目录,就不会出现这个问题,你试一下。放在XP环境里也测试一下,如果正常,那一定是权限问题,要么放在程序所在的目录,要么要以管理员的权限来运行程序。



试过把文件放在release文件夹里面,,还是这个错误。 --------------------编程问答-------------------- 如果你用的低版本的dll,去打开高版本文件,可能... --------------------编程问答--------------------
引用 3 楼 bdmh 的回复:
如果你用的低版本的dll,去打开高版本文件,可能...


但是出错的电脑也装的是office2007 --------------------编程问答-------------------- 是不是EXCEL文件的格式是早期的,


用office2007打开文件,然后修改内容,再保存文件,有没有要求转存的信息 --------------------编程问答-------------------- 代码贴出来看看,帮你分析一下 --------------------编程问答--------------------
引用 6 楼 wind_cloud2011 的回复:
代码贴出来看看,帮你分析一下


Public Shared excelpath As String
Dim openFileDiag As New OpenFileDialog()
Dim xlApp As New Microsoft.Office.Interop.Excel.Application
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
If openFileDiag.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            excelpath = openFileDiag.FileName
End If

xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
xlBook = xlApp.Workbooks.Open(Home_Form.excelpath)
--------------------编程问答-------------------- 在我的机子上调试没有问题,我的系统是win7 --------------------编程问答--------------------
 Public Shared excelpath As String
    Public xlBook As Microsoft.Office.Interop.Excel.Workbook
    Public xlSheet As Microsoft.Office.Interop.Excel.Worksheet
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim openFileDiag As New OpenFileDialog()
        Dim xlApp As New Microsoft.Office.Interop.Excel.Application
        Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
        If openFileDiag.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            excelpath = openFileDiag.FileName
        End If
        xlApp = CreateObject("Excel.Application")
        xlApp.Visible = False
        xlBook = xlApp.Workbooks.Open(excelpath)
        xlSheet = xlBook.Worksheets(xlBook.Sheets(1).name)   '读取excel        
        For i = 1 To 5
            For j = 1 To 5
                If xlSheet.Cells(j, i).value <> "" Then
                    ListBox1.Items.Add(xlSheet.Cells(i, j).value.ToString())
                End If
            Next j
        Next i
    End Sub

没有你“不能识别的文件格式”,我引用的是Microsoft.Office.Interop.Excel版本是12.0.0.0 --------------------编程问答-------------------- 应该是不能识别的机器上安装office时没有添加对.net的支持吧(默认是不安装的)。重新安装一下office,自定义安装,添加.net的支持即可 --------------------编程问答-------------------- 这个问题我把电脑上的03版excel删除了就可以了。 --------------------编程问答--------------------
引用 11 楼 a48643426 的回复:
这个问题我把电脑上的03版excel删除了就可以了。



求不删除03excel的情况下的解决方法。。问题关键是
xlApp = CreateObject("Excel.Application")'的时候打开了03版本的应用。

xlBook = xlApp.Workbooks.Open(Home_Form.excelpath)’而这一句打开的是.xlsx后缀的文件。



求大神给个方法。。 --------------------编程问答-------------------- 你安装一个 2003,2007兼容包,再引用Microsoft.Office.Interop.Excel版本是12.0.0.0 , --------------------编程问答--------------------
引用 13 楼 wind_cloud2011 的回复:
你安装一个 2003,2007兼容包,再引用Microsoft.Office.Interop.Excel版本是12.0.0.0 ,


关键是不是所有电脑都是这样。。。有很多电脑。。每台装也不太现实。。 --------------------编程问答-------------------- 关键是你要找到问题,给解决了,再搞个自动升级, --------------------编程问答-------------------- 顶一下。。。。。 --------------------编程问答--------------------
引用 7 楼 a48643426 的回复:
Quote: 引用 6 楼 wind_cloud2011 的回复:

代码贴出来看看,帮你分析一下


Public Shared excelpath As String
Dim openFileDiag As New OpenFileDialog()
Dim xlApp As New Microsoft.Office.Interop.Excel.Application
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
If openFileDiag.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            excelpath = openFileDiag.FileName
End If

xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
xlBook = xlApp.Workbooks.Open(Home_Form.excelpath)

我倒没出现过这样的问题 --------------------编程问答-------------------- 打开高版本的excel文件,可能会出现这现象!按理说,你打开的应该是excel2007或更高版本的,后缀名是不是.xlsm,下载一个《excel2007兼容包》,安装后看能否还提示这现象!
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,