Member 13910513 Ответов: 2

Как экспортировать таблицу данных в Open office excel?


Ниже приведен мой код, который экспортирует таблицу данных в MS excel. Вместо MS excel мне нужно экспортировать данные, чтобы открыть office excel. Я посмотрел на пару постов, но не получил никакой помощи.
Спасибо!

protected void ExportToExcel(object sender, EventArgs e)
        {
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "";
            Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");          
            Response.ContentType = "application/vnd.ms-excel";
           // Response.ContentType = "text/csv";
            using (StringWriter sw = new StringWriter())
            {
                HtmlTextWriter hw = new HtmlTextWriter(sw);
                //To Export all pages
                gvreport.AllowPaging = false;
                this.BindGrid();
                gvreport.HeaderRow.BackColor = Color.White;
                foreach (TableCell cell in gvreport.HeaderRow.Cells)
                {
                    cell.BackColor = gvreport.HeaderStyle.BackColor;
                }
                foreach (GridViewRow row in gvreport.Rows)
                {
                    row.BackColor = Color.White;
                    foreach (TableCell cell in row.Cells)
                    {
                        if (row.RowIndex % 2 == 0)
                        {
                            cell.BackColor = gvreport.AlternatingRowStyle.BackColor;
                        }
                        else
                        {
                            cell.BackColor = gvreport.RowStyle.BackColor;
                        }
                        cell.CssClass = "textmode";
                    }
                }

 

                gvreport.RenderControl(hw);

 

                //style to format numbers to string

 

                string style = @"<style> .textmode { } </style>";
                Response.Write(style);
                Response.Output.Write(sw.ToString());
                Response.Flush();
                Response.End();
            }

 

        }


Что я уже пробовал:

I looked at couple of posts but did not get any help.
Thank You!

Maciej Los

Приведенный выше код экспортирует данные не в Excel, а в формат html!

2 Ответов

Рейтинг:
0

Garth J Lancaster

Я бы посмотрел на этот пример здесь Пример aodl 1 - Apache OpenOffice Wiki[^], которая требует (если не ошибаюсь) Галерея NuGet | AODL 1.2.0.1[^]


Maciej Los

Интересная альтернатива ;)

Richard Deeming

Вероятно, стоит перейти по ссылкам на сайт AODL:
Но 4 все инструменты и API[^]

Похоже, что версия на NuGet устарела, и в ней отсутствуют различные функции и исправления ошибок. Это согласуется с тем фактом, что Заметки о выпуске NuGet заканчиваются в декабре 2005 года, а проект SourceForge не обновлялся с февраля 2006 года.

Сайт, связанный оттуда для обновленной версии, теперь перенаправляется на LibreOffice. На этой странице упоминается версия, основанная на JDK 8, что говорит о том, что новая версия не поддерживает ее .Сети больше нет. Последняя загрузка там, кажется, с апреля 2017 года.

Maciej Los

Очень ценная информация!

Рейтинг:
0

Maciej Los

Вы должны установить Open XML SDK 2.5 для Office | Microsoft Docs[^]
Затем вы должны прочитать документацию MSDN (который содержит примеры): Электронные таблицы (Open XML SDK) | Microsoft Docs[^]

Цитата:
пример кода

То CreateSpreadsheetWorkbook метод, показанный здесь, может быть использован для создания базового документа Excel, рабочей книги с одним листом с именем "mySheet". Чтобы вызвать его в своей программе, вы можете использовать следующий пример кода, который создает файл с именем "Sheet2.xlsx-в папке "общие документы".

CreateSpreadsheetWorkbook(@"c:\Users\Public\Documents\Sheet2.xlsx")


Обратите внимание, что расширение имени файла .xlsx соответствует типу файла, указанному в SpreadsheetDocumentType.Параметр рабочей книги в вызове метода Create.

Ниже приведен полный пример кода

public static void CreateSpreadsheetWorkbook(string filepath)
{
    // Create a spreadsheet document by supplying the filepath.
    // By default, AutoSave = true, Editable = true, and Type = xlsx.
    SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.
        Create(filepath, SpreadsheetDocumentType.Workbook);

    // Add a WorkbookPart to the document.
    WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
    workbookpart.Workbook = new Workbook();

    // Add a WorksheetPart to the WorkbookPart.
    WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
    worksheetPart.Worksheet = new Worksheet(new SheetData());

    // Add Sheets to the Workbook.
    Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.
        AppendChild<Sheets>(new Sheets());

    // Append a new worksheet and associate it with the workbook.
    Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.
        GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
    sheets.Append(sheet);

    workbookpart.Workbook.Save();

    // Close the document.
    spreadsheetDocument.Close();
}