2016-07-26 47 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