Member 14765915 Ответов: 1

Атрибут таблицы не работает в моем проекте


<pre> private string ExcelHeader()
        {
            // Excel header
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.AppendFormat("<?xml version=\"1.0\"?>\n");
            sb.Append("<?mso-application progid=\"Excel.Sheet\"?>\n");
            sb.Append("<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\" ");
            sb.Append("xmlns:o=\"urn:schemas-microsoft-com:office:office\" ");
            sb.Append("xmlns:x=\"urn:schemas-microsoft-com:office:excel\" ");
            sb.Append("xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\" ");
            sb.Append("xmlns:html=\"http://www.w3.org/TR/REC-html40\">\n");
            sb.Append("<DocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\">");
            sb.Append("</DocumentProperties>");
            sb.Append("<ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\">\n");
            sb.Append("<ProtectStructure>Ture</ProtectStructure>\n");
            sb.Append("<ProtectWindows>False</ProtectWindows>\n");
            sb.Append("</ExcelWorkbook>\n");
            return sb.ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=sanjay;Initial Catalog=Login;Integrated Security=True");
            SqlCommand cmd = new SqlCommand("select * from login", con);
            System.Data.DataTable dt = new DataTable();
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(dt);
            StringBuilder strExcelXml = new StringBuilder();
            if (dt.Rows.Count > 0)
            {
                //First Write the Excel Header
                strExcelXml.Append(ExcelHeader());
                string sanjay = "sanjay";
                // Create First Worksheet
                strExcelXml.Append("<Worksheet ss:Name=\"" + sanjay.ToString() + "\">");
                strExcelXml.Append("<Table border=\"2\">");
                strExcelXml.Append("<Tr>");
                strExcelXml.Append("<Td>SANJAY</Td>");
                strExcelXml.Append("</Tr>");
                strExcelXml.Append("</Table>");
                strExcelXml.Append("<WorksheetOptions> </WorksheetOptions>");
                strExcelXml.Append("</Worksheet>");
                // Then Table Tag
                for (int i = 1; i < dt.Rows.Count; i++)
                {
                    // Create First Worksheet tag
                    strExcelXml.Append("<Worksheet ss:Name=\"" + i.ToString() + "\">");
                    // Then Table Tag
                    strExcelXml.Append("<Table>");
                        // Row Tag
                        strExcelXml.Append("<Tr>");
                        for (int j = 0; j < dt.Rows.Count; j++)
                        {// Cell Tags
                            strExcelXml.Append("<Td>");
                            strExcelXml.Append("Sheet" + i.ToString() + "<Row>" + dt.Rows[i][0].ToString() + "<Col>" + dt.Rows[i][1].ToString());
                            strExcelXml.Append("</Col></Row>");
                            strExcelXml.Append("</Td>");
                        }
                        strExcelXml.Append("</Tr>");
                    strExcelXml.Append("</Table>");
                    strExcelXml.Append("</Worksheet>");
                }
                // Close the Workbook tag (in Excel header 
                // you can see the Workbook tag)
                strExcelXml.Append("</Workbook>\n");
            }
            using (System.IO.StreamWriter file = new System.IO.StreamWriter("D:\\DEPOSIT_ACC_Final .XLS"))
            {
                file.WriteLine(strExcelXml.ToString());
            }
            System.Diagnostics.Process.Start("D:\\DEPOSIT_ACC_Final .XLS");
        }
    }


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

Я попробовал экспорт данных в файл "Excel" в "нескольких листах Excel", но "лист excel" создает успех, но данные не печатаются в табличном формате любое тело помогает мне

Maciej Los

То, что вы пытаетесь сделать, - это создать html-файл, а не файл Excel...

Member 14765915

Я попробовал строковый конструктор используя затем stream writer используя только один файл create в моем проекте

Richard MacCutchan

Ваш код не создает допустимый файл Excel. Где вы нашли детали для создания этого формата XML?

1 Ответов

Рейтинг:
8

Maciej Los

Я бы посоветовал использовать Библиотека EPPlus [^].
Вы можете скачать пакет из NuGet: Галерея NuGet | EPPlus 5.0.3[^]
Позаботьтесь хорошенько о лицензии, потому что:

Цитата:
Начиная с версии 5 EPPlus изменяет модель лицензии, используя двойную лицензию, Polyform Non Commercial / Commercial license.