2016-07-26 49 views
1

我有这样的代码来生成一个Excel文件并下载:Excel无法打开Gembox电子表格文件

SpreadsheetInfo.SetLicense("mycode"); 
ExcelFile myExcelFile = new ExcelFile(); 
ExcelWorksheet ws = myExcelFile.Worksheets.Add("Page 1"); 
myExcelFile.Save(Response, "asd.xlsx"); //this is for download 

当我下载Excel文件,它说:

无论是文件类型或文件扩展名无效,因此Excel无法打开 此文件。确认文件没有损坏或文件扩展名匹配 文件类型。

我试图解决这个小时,但我找不到解决方案。我在其他地方使用相同的代码,它可以工作,但它在我的项目的这部分不起作用。你能告诉我该怎么办?谢谢。

+0

你应该使用[此链接]提交支持票GemBox软件(HTTP ://www.gemboxsoftware.com/support-center/new-ticket)并附加损坏的文件,以便他们可以调查该文件。 –

回答

2

尝试将火救成xls文件而不是xlsx文件。我猜测默认是xls。如果文件扩展名错误,Excel可能会感到困惑。

+0

当我将它设置为xls时,会出现另一个错误。 – jason

+0

那么,这是进步:-)现在呢? –

0

我有同样的问题,它是由工作表标题引起的。工作表标题不应该太长。我认为这个限制是32个字符。

0

HYE。尝试这个。 我尝试了一些GEMBOX电子表格网站的例子。

Imports GemBox.Spreadsheet 
Imports GemBox.Spreadsheet.WinFormsUtilities 
Imports System.Data.OleDb 

公共类Form1中

Public Sub New() 
    SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY") 

    InitializeComponent() 
End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    Dim openFileDialog = New OpenFileDialog() 
    openFileDialog.Filter = "XLS files (*.xls, *.xlt)|*.xls;*.xlt|XLSX files (*.xlsx, *.xlsm, *.xltx, *.xltm)|*.xlsx;*.xlsm;*.xltx;*.xltm|ODS files (*.ods, *.ots)|*.ods;*.ots|CSV files (*.csv, *.tsv)|*.csv;*.tsv|HTML files (*.html, *.htm)|*.html;*.htm" 
    openFileDialog.FilterIndex = 2 

    If (openFileDialog.ShowDialog() = DialogResult.OK) Then 
     Dim ef = ExcelFile.Load(openFileDialog.FileName) 

     ' Export Excel worksheet to DataGridView control. 
     DataGridViewConverter.ExportToDataGridView(ef.Worksheets.ActiveWorksheet, Me.DataGridView1, New ExportToDataGridViewOptions() With {.ColumnHeaders = True}) 
    End If 



End Sub 

打开文件对话框,可以最大限度地减少来读取Excel文件只

+0

您必须在您的项目中单击添加参考并选择GEMBOX电子表格和GEMBOX抽奖活动。使其具有相同的版本或者相反将会损坏 – KEROL