locked
How to save Label.Text values to Excel in ASP.NET using C#? RRS feed

  • Question

  • User-1391672913 posted

    I am trying to save values of label.text to an Excel file. The values of the labels came from a database that I am using.

    Here is my code:

    .aspx

    <asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
    <asp:Label ID="Label2" runat="server" Text=""></asp:Label><br />
    <asp:Label ID="Label3" runat="server" Text=""></asp:Label><br />
    <asp:Label ID="Label4" runat="server" Text=""></asp:Label><br />
    <asp:Label ID="Label5" runat="server" Text=""></asp:Label><br />
    <asp:Label ID="Label6" runat="server" Text=""></asp:Label><br /><br />

    aspx.cs

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["id"] != null)
        {
            Label1.Text = "Stock Keeping Unit: " + Request.QueryString["StockKeepingUnit"];
            Label2.Text = "Universal Product Code: " + Request.QueryString["UniversalProductCode"];
            Label3.Text = "Vendor Name: " + Request.QueryString["VendorName"];
            Label4.Text = "Product Name: " + Request.QueryString["ProductName"];
            Label5.Text = "Product Description: " + Request.QueryString["ProductDesc"];
            Label6.Text = "Retail Price: " + Request.QueryString["RetailPrice"];
        }
        else
        {
            Response.Redirect("LoginPage.aspx");
        }
    }
    
    protected void SaveButton_Click(object sender, EventArgs e)
    {
        string[] information = { Label1.Text, Label2.Text, Label3.Text, Label4.Text, Label5.Text, Label6.Text };
        string path = @"C:\Users\hac9289\source\repos\WebAppRetail";
    
        using (StreamWriter outputFile = new StreamWriter(Path.Combine(path, "RetailInformation.xls")))
        {
            foreach (string info in information)
            {
                outputFile.WriteLine(info);
            }
    
            ScriptManager.RegisterStartupScript(this, typeof(string), "New record added successfully", "alert('Record Saved');", true);
        }
    }

    However, the values that are saved in the Excel file looked liked this: 

    It seems that every words were put to a cell. How can I code it to have 2 columns only? Like this:

    Any help will do. Thank you

    Thursday, January 9, 2020 6:58 AM

Answers

  • User288213138 posted

    Hi NoobNoob,

    However, the values that are saved in the Excel file looked liked this: 

    I tested your code, but i get the following result:

    But if you want to divide it into 2 columns, you can try to use ExcelPackage. This demo for you:

    protected void Page_Load(object sender, EventArgs e)
            {
    
                Label1.Text = "Stock Keeping Unit: " + 111;
                Label2.Text = "Universal Product Code: " + 222;
                Label3.Text = "Vendor Name: " + 333;
                Label4.Text = "Product Name: " + 444;
                Label5.Text = "Product Description: " + 555;
                Label6.Text = "Retail Price: " + 777;
            }
            protected void SaveButton_Click(object sender, EventArgs e)
            {
                string[] information = { Label1.Text, Label2.Text, Label3.Text, Label4.Text, Label5.Text, Label6.Text };
                using (ExcelPackage excelPackage = new ExcelPackage())
                {
                    ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet 1");
                    int n = 1;
    
    
                    for (var i = 0; i < information.Length; i++)
                    {
                        string[] s = information[i].Split(new char[] { ':' }, 2);
                        worksheet.Cells[n, 1].Value = s[0] + ":";
                        worksheet.Cells[n, 2].Value = s[1];
                        n++;
                    }
    
                    FileInfo fi = new FileInfo(@"C:\Users\samwu\Desktop\RetailInformation.xlsx");
                    excelPackage.SaveAs(fi);
                    ScriptManager.RegisterStartupScript(this, typeof(string), "New record added successfully", "alert('Record Saved');", true);
                }
            }

    The result:

    Best regards,

    Sam

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, January 9, 2020 9:27 AM

All replies

  • User288213138 posted

    Hi NoobNoob,

    However, the values that are saved in the Excel file looked liked this: 

    I tested your code, but i get the following result:

    But if you want to divide it into 2 columns, you can try to use ExcelPackage. This demo for you:

    protected void Page_Load(object sender, EventArgs e)
            {
    
                Label1.Text = "Stock Keeping Unit: " + 111;
                Label2.Text = "Universal Product Code: " + 222;
                Label3.Text = "Vendor Name: " + 333;
                Label4.Text = "Product Name: " + 444;
                Label5.Text = "Product Description: " + 555;
                Label6.Text = "Retail Price: " + 777;
            }
            protected void SaveButton_Click(object sender, EventArgs e)
            {
                string[] information = { Label1.Text, Label2.Text, Label3.Text, Label4.Text, Label5.Text, Label6.Text };
                using (ExcelPackage excelPackage = new ExcelPackage())
                {
                    ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet 1");
                    int n = 1;
    
    
                    for (var i = 0; i < information.Length; i++)
                    {
                        string[] s = information[i].Split(new char[] { ':' }, 2);
                        worksheet.Cells[n, 1].Value = s[0] + ":";
                        worksheet.Cells[n, 2].Value = s[1];
                        n++;
                    }
    
                    FileInfo fi = new FileInfo(@"C:\Users\samwu\Desktop\RetailInformation.xlsx");
                    excelPackage.SaveAs(fi);
                    ScriptManager.RegisterStartupScript(this, typeof(string), "New record added successfully", "alert('Record Saved');", true);
                }
            }

    The result:

    Best regards,

    Sam

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Thursday, January 9, 2020 9:27 AM
  • User-1391672913 posted

    Hi Sam!

    Thank you very much for your help! I'll do this and reply as soon as i can.

    Sincerely,

    NoobNoob

    Thursday, January 9, 2020 9:43 AM
  • User-1391672913 posted

    Hi Sam!

    I have done your demo and it works fine! Thank you so much for helping me.

    Sincerely,

    NoobNoob

    Friday, January 10, 2020 1:18 AM