Click here to Skip to main content
15,886,689 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I need to create docx file from the provided text.
Here is the code snippet,

XML
<asp:TextBox ID="txtDescription" runat="server" TextMode="MultiLine" Height="100"
            Width="280"></asp:TextBox>
        <asp:LinkButton ID="lb_Download" runat="server" Text="Download file" OnClick="lb_Download_Click"></asp:LinkButton>


C#
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            txtDescription.Text = "lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.";
        }
    }
    protected void lb_Download_Click(object sender, EventArgs e)
    {
        string strContents = null;
        strContents = txtDescription.Text;

        string attachment = "attachment; filename=test.docx";
        Response.ClearContent();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
        Response.AddHeader("content-disposition", attachment);
        Response.Write(strContents);
        Response.End();
    }



When I open this created test.docx file, it gives me error.
Any solution in the Content Type?
Posted
Comments
Festar 16-Sep-15 8:24am    
The problem is with a following:

Response.Write(strContents);

You see you're writing a DOCX file as if it were a plain text file and that will not work. You need to create a real DOCX file.
For that you can use quite a few options, for example you can try OpenXML SDK:
https://msdn.microsoft.com/en-us/library/dd440953(v=office.12).aspx
Or you can try a simpler approach with MadMilkman.Docx, like this:

// Create new DOCX file.
DocxFile document = new DocxFile();

// Add "strContents" as a HTML paragraph.
document.Body.AppendText("<body><p>" + strContents + "</p></body>", ContentType.Html);

MemoryStream stream = new MemoryStream();
// Save DOCX file to stream.
document.Save(stream);

// Write stream to Response...

Or you can try this word processing dll for C#, here is how you can create a word document in C# with it.

Go through this link, this may helps you

Here[^]

Thanks
--RA
 
Share this answer
 
Comments
Mukund Thakker 30-Jan-12 0:36am    
This doesn't work. Gives same error while opening file.
Use the below line
C#
Response.ContentType = "application/vnd.ms-word.document";
 
Share this answer
 
v2
Comments
Anuja Pawar Indore 27-Jan-12 1:20am    
Added pre tag
Mukund Thakker 28-Jan-12 2:29am    
This doesn't work. Gives same error while opening file.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900