Экспортируйте файлы в файл Excel XLSX с помощью C# и ClosedXML.Excel.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Экспортируйте файлы в файл Excel XLSX с помощью C# и ClosedXML.Excel.

Сообщение Anonymous »

У меня возникла проблема с экспортом данных в формат Excel XLSX с использованием C# ASP.Net и ClosedXML.Excel
На практике, когда я выполняю хранимую процедуру «sProc_20241009» в базе данных MySQL У меня есть этот вывод
Изображение

Вместо этого, когда я экспортирую свои данные в формат Excel XLSX с помощью ClosedXML.Excel, я получаю следующий результат
[img]https:/ /i.sstatic.net/IYL6AcCW.png[/img]

Вместо данных в таблице MySQL есть цифры
Мой код на C# ниже
public static void ExportDataSetToExcel(DataSet ds)
{
string AppLocation = @"D:\inetpub\wwwroot\PUBLIC\ExcelFiles\";
string guid = Guid.NewGuid().ToString().ToUpper().Replace("-", "_");

HttpContext.Current.Response.Cookies["guid"].Value = guid.ToString();
HttpContext.Current.Response.Cookies["guid"].Expires = DateTime.Now.AddMinutes(3);

string filepath = AppLocation + "Export_" +
DateTime.Now.ToString("ddMMyyyyHHmm") + "_" +
HttpContext.Current.Response.Cookies["guid"].Value + ".xlsx";

using (XLWorkbook wb = new XLWorkbook())
{
for (int i = 0; i < ds.Tables.Count; i++)
{
wb.Worksheets.Add(ds.Tables, ds.Tables.TableName);
}
wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
wb.Style.Font.Bold = true;
wb.SaveAs(filepath);
wb.Dispose();
}

Thread.Sleep(3000);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "application/force-download";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; " +
"filename=Export_" +
DateTime.Now.ToString("ddMMyyyyHHmm") + "_" +
HttpContext.Current.Response.Cookies["guid"].Value + ".xlsx");

HttpContext.Current.Response.TransmitFile(@"D:\inetpub\wwwroot\PUBLIC\ExcelFiles\Export_" +
DateTime.Now.ToString("ddMMyyyyHHmm") + "_" +
HttpContext.Current.Response.Cookies["guid"].Value + ".xlsx");

HttpCookie cookie = new HttpCookie("ExcelDownloadFlag")
{
Value = "Flag",
Expires = DateTime.Now.AddDays(1)
};

HttpContext.Current.Response.AppendCookie(cookie);
HttpContext.Current.Response.End();
}

protected void btnxlsx_Click(object sender, ImageClickEventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();

using (MySqlConnection con =
new MySqlConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString))
{
using (MySqlCommand cmd =
new MySqlCommand("sProc_20241009", con))
{
cmd.CommandTimeout = 2147483;
cmd.Connection.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@ID", id.Text.ToString());

MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(ds);
ExportDataSetToExcel(ds);
}
}
}

А это хранимая процедура «sProc_20241009» в базе данных MySQL
SELECT
col1,
col2
FROM
(
SELECT
'_Date_Hour' col1,
_Date_Hour AS col2
FROM
check_list
WHERE
_ID = @ID UNION ALL
SELECT
'_ID' AS _ID,
_ID
FROM
check_list
WHERE
_ID = @ID UNION ALL
SELECT
'_Area' AS _Area,
_Area
FROM
check_list
WHERE
_ID = @ID ) src;


Подробнее здесь: https://stackoverflow.com/questions/790 ... dxml-excel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»