Как экспортировать, чтобы преуспеть с арабской проблемой - PullRequest
0 голосов
/ 10 декабря 2018

Я не очень хорошо спрашиваю прощение в моем приложении для Windows, у меня есть сетка с данными, Здесь я хочу экспортировать сетку для превосходства, я пытаюсь с кодом ниже, у меня есть проблема с моим кодом для экспорта dataGridView вExcel лист, я получаю такой результат (???% $ ^ & $$ & $% & $% ^ $ @% # @% @ #%)

я надеюсь, что любой может помочь мне с этимкод

я много раз искал и не нашел ответа

понятия не имею, для какого сопоставления установлены таблицы.Есть ли способ правильно экспортировать данные или преобразовать их в правильную кодировку?

кнопка экспорта

    private void Btexport_Click(object sender, EventArgs e)
    {
        if (dataGridView1.Rows.Count > 0)
        {
            try
            {
                // Bind Grid Data to Datatable
                DataTable dt = new DataTable();
                foreach (DataGridViewColumn col in dataGridView1.Columns)
                {
                    dt.Columns.Add(col.HeaderText, col.ValueType);
                }
                int count = 0;
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    if (count < dataGridView1.Rows.Count - 1)
                    {
                        dt.Rows.Add();
                        foreach (DataGridViewCell cell in row.Cells)
                        {
                            dt.Rows[dt.Rows.Count - 1][cell.ColumnIndex] = cell.Value.ToString();
                        }
                    }
                    count++;
                }
                // Bind table data to Stream Writer to export data to respective folder
                StreamWriter wr = new StreamWriter(@"C:\Users\ils\Desktop\New folder (2)\Book1.xls");
                // Write Columns to excel file
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    wr.Write(dt.Columns[i].ToString().ToUpper() + "\t");
                }
                wr.WriteLine();
                //write rows to excel file
                for (int i = 0; i < (dt.Rows.Count); i++)
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        if (dt.Rows[i][j] != null)
                        {
                            wr.Write(Convert.ToString(dt.Rows[i][j]) + "\t");
                        }
                        else
                        {
                            wr.Write("\t");
                        }
                    }
                    wr.WriteLine();
                }
                wr.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }

данные

public void Disp_data()
    {
        SqlConnection mycon = new SqlConnection("Data Source=DESKTOP-J7D5POF;Initial Catalog=ilswork;Persist Security Info=True;User ID=test;Password=12345;Connect Timeout=60");
        mycon.Open();
        SqlCommand cmd = mycon.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select name1 from [dbo].[test5]";
        cmd.ExecuteNonQuery();
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        dataGridView1.DataSource = dt;
        mycon.Close();
    }
    private void Form3_Load(object sender, EventArgs e)
    {
        Disp_data();

    }
}
...