0

我是 asp.net 的新手,需要创建一个项目。我的要求是我有一个表来存储数据。这是我的主桌。在每个 id 下我有一个单独的表:

Msg_id         Src                 Dest
701            RADAR               MSC
702            MSC                 RADAR

Msg_id         Message_size        Mgs_desc
701            256                 PFM_Load

像这样继续......我有3个下拉列表。第一个是msg_id,第二个是src,第三个是dest。我还有一个提交按钮,用户可以选择任何一个下拉列表,相应的表格应该显示在 MS-Word 中。

4

3 回答 3

1

您需要在 .NET 中创建此数据的报告

用于EnableRenderExtension( "HTML4.0", "MS Word" );此目的。

然后必须将该报告导出到word文件中。

关注链接:

http://www.codeproject.com/Articles/35225/Advanced-Report-Viewer

或者

循序渐进的方法:

http://www.accelebrate.com/sql_training/ssrs_2008_tutorial.htm

希望它有帮助。

于 2013-05-15T04:57:38.047 回答
1

你可以使用这个:这个代码用于导出到 csv 格式,它可以在 msword 和 msexcel 中打开:

private void OutPutFileToCsv(DataTable dt, string fileName, string seperator)
        {
            StringWriter stringWriter = new StringWriter();
            Int32 iColCount = dt.Columns.Count;
            for (Int16 i = 0; i < iColCount; i++)
            {
                stringWriter.Write(dt.Columns[i]);
                if (i < iColCount - 1)
                {
                    if (seperator.Contains(";"))
                        stringWriter.Write(";");
                    else
                        stringWriter.Write(",");
                }
            }
            stringWriter.Write(stringWriter.NewLine);
            foreach (DataRow dr in dt.Rows)
            {
                for (int i = 0; i < iColCount; i++)
                {
                    if (!Convert.IsDBNull(dr[i]))
                    {
                        stringWriter.Write(dr[i].ToString().Trim());
                    }
                    if (i < iColCount - 1)
                    {
                        if (seperator.Contains(";"))
                            stringWriter.Write(";");
                        else
                            stringWriter.Write(",");
                    }
                }
                stringWriter.Write(stringWriter.NewLine);
            }

            Response.ClearContent();
            Response.ClearHeaders();

            Response.ContentType = "text/csv";
            Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}", fileName));

            Response.ContentEncoding = Encoding.GetEncoding("iso-8859-1");
            //Response.BinaryWrite(Encoding.Unicode.GetPreamble());

            Response.Write(stringWriter.ToString());
            Response.End();
        }
于 2013-05-15T05:45:39.117 回答
0

只需在函数中传递您的数据表并在 ms-word 中获取网格数据。

 private void ExportToWord(DataTable dt)
    {
        if (dt.Rows.Count > 0)
        {
            string filename = "DownloadReport.xls";
            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
            DataGrid dgGrid = new DataGrid();
            dgGrid.DataSource = dt;
            dgGrid.DataBind();

            //Get the HTML for the control.
            dgGrid.RenderControl(hw);
            //Write the HTML back to the browser.
            Response.ContentType = "application/msword";
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
            this.EnableViewState = false;
            Response.Write(tw.ToString());
            Response.End();
        }
    }

希望它可以帮助你。

于 2013-05-15T04:52:48.693 回答