当前位置:编程学习 > C#/ASP.NET >>

100分求把winform里的内容保存成word文档 或者 直接实现 打印与预览。



求把winform里的内容保存成word文档 或者 直接实现 打印与预览。

小弟是自学的C#语言,高人贴的代码可能不怎么会看得懂,希望各位高人能直接把 小弟的 控件名称 加进你的代码里,我直接复制代码到VS里就能使用最好了 谢谢各位大神先。。

我的控件名称如下:

title.text

print1.text
print2.text
print3.text
print4.text
print5.text
print6.text
print7.text
print8.text

两个img控件 pic1  pic2



小弟是自学的C#语言,高人贴的代码可能不怎么会看得懂,希望各位高人能直接把 小弟的 控件名称 加进你的代码里,我直接复制代码到VS里就能使用最好了 谢谢各位大神先。。

保存成word 和 打印出来的效果 要像我图片里 排列好的 格式 一样哦,真的谢谢各位大神。。 --------------------编程问答-------------------- http://cpbcw.com/download/327.html --------------------编程问答-------------------- 小弟是自学的C#语言,高人贴的代码可能不怎么会看得懂,希望各位高人能直接把 小弟的 控件名称 加进你的代码里,我直接复制代码到VS里就能使用最好了 谢谢各位大神先。。

保存成word 和 打印出来的效果 要像我图片里 排列好的 格式 一样哦,真的谢谢各位大神。。 --------------------编程问答-------------------- 你用它,一切都輕鬆

http://www.e-iceblue.com/Download/download-office-for-net-now.html --------------------编程问答-------------------- NPOI 可以一试 --------------------编程问答-------------------- 从知道csdn以来 
还没敢这么问过问题。。。 --------------------编程问答--------------------
引用 3 楼 crackdung 的回复:
你用它,一切都輕鬆

http://www.e-iceblue.com/Download/download-office-for-net-now.html
收费的啊 还全英文 = = --------------------编程问答-------------------- help me~~~~~~~~~~~ --------------------编程问答-------------------- http://www.cnblogs.com/kokoliu/archive/2007/09/02/879104.html
里面有你所需要的各种方法,包括对word的提取和保存, --------------------编程问答-------------------- Control.SaveToImage
好像又这样的一个函数 --------------------编程问答-------------------- 要保存成word 你要自己创建 然后 自己排版的 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 求高人 好心好心帮帮我吧 不然我要疯了呢 --------------------编程问答--------------------

        // 工具箱中拖一个printPreviewDialog,一个printDocument
       private void 预览button_Click(object sender, EventArgs e)
        {
                       
            this.printPreviewDialog1.Document = this.printDocument1;
            
            printPreviewDialog1.PrintPreviewControl.Zoom = 1;

            printPreviewDialog1.Width = 850;
            printPreviewDialog1.Height = 551;
                       
            this.printPreviewDialog1.ShowDialog();

         
        }

 private void 打印button_Click(object sender, EventArgs e)
        {
        
            printDocument1.Print();

        }

 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
           
            
            printDocument1.DocumentName = "打印";
            StringFormat StringF = new StringFormat();
            StringF.Alignment = StringAlignment.Near;
            Font Myfont = new Font("宋体", 9);
            Pen mypen = new Pen(Color.Black, 4);

            string fjxx = print1.Text.Trim();
            RectangleF drawRect = new RectangleF(30, 102, 150, 60);
            //e.Graphics.DrawRectangle(Pens.Black, x, j, w, h);
            e.Graphics.DrawString(fjxx, Myfont, mypen.Brush, drawRect, StringF);
            ............
            Image newImage = pic1.Image;
            int x = 100;
             int y = 100;
             e.Graphics.DrawImage(newImage, x, y);
             ......................

--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 首先读取word文档//这个在网上有很多源代码和demo 
然后预览那么是用数据容器 比如datagridview //你读取word的时候 把读取的数据放入datatable中 然后 datagridview.DataSource=datatable; --------------------编程问答-------------------- 还是14楼的大神 能理解小弟啊,我看到我使用的 控件名称了,比较能懂你的代码,我先试试。。谢谢啊 --------------------编程问答-------------------- 14楼的办法可行? --------------------编程问答-------------------- 先创建一个样式WORD模板,然后在模板加入标签,在写代码把相应的内容填进标签就ok了啊 --------------------编程问答-------------------- 打印

http://blog.csdn.net/happy09li/article/details/6931959 --------------------编程问答-------------------- 还是不要出来混的好。 --------------------编程问答-------------------- 14楼的办法试了 打印预览 什么都看不见啊??? --------------------编程问答-------------------- 基础太差,还是先回去看书学习,谁都有没有空帮你把所有代码写出和帮你调试。 --------------------编程问答-------------------- --------------------编程问答-------------------- 求详细代码 我自己改 T_T --------------------编程问答-------------------- 需要用到一个dll 加载之后 就可以用C# 操作office 了 毕竟是一家的东西 好搞些 
贴一些片段给你看看
   Microsoft.Office.Interop.Word.Table newTable = wordDoc.Tables.Add(wordApp.Selection.Range, 1, 9, ref Nothing, ref Nothing);

                //合并单元格

                newTable.Cell(1, 1).Range.Text = "序号";
                newTable.Cell(1, 2).Range.Text = "产品名称";
                newTable.Cell(1, 3).Range.Text = "规格型号";
                newTable.Cell(1, 4).Range.Text = "使用人";
                newTable.Cell(1, 5).Range.Text = "计量单位";
                newTable.Cell(1, 6).Range.Text = "请购数量";
                newTable.Cell(1, 7).Range.Text = "实收数量";
                newTable.Cell(1, 8).Range.Text = "单价";
                newTable.Cell(1, 9).Range.Text = "编号";

                //填充 已有的一个人的数据

                int rowIndex = 2;
                for (int j = 0; j < count; j++)
                {
                    if (alneme[i].ToString() == gridView[5, j].Value.ToString())
                    {
                        wordDoc.Content.Tables[i+1].Rows.Add(ref Nothing);
                        newTable.Rows[rowIndex].Cells[1].Range.Text = "" + (j + 1);             //序号
                        newTable.Rows[rowIndex].Cells[2].Range.Text = gridView[1, j].Value.ToString();            //名称
                        newTable.Rows[rowIndex].Cells[3].Range.Text = gridView[8, j].Value.ToString();           //型号
                        newTable.Rows[rowIndex].Cells[4].Range.Text = alneme[i].ToString();     //使用人
                        newTable.Rows[rowIndex].Cells[5].Range.Text = gridView[2, j].Value.ToString();           //计量单位
                        newTable.Rows[rowIndex].Cells[6].Range.Text = "1";                      //请购数量
                        newTable.Rows[rowIndex].Cells[7].Range.Text = "1";                      //实够数量
                        newTable.Rows[rowIndex].Cells[8].Range.Text = gridView[7, j].Value.ToString();           //单价
                        newTable.Rows[rowIndex].Cells[9].Range.Text = gridView[0, j].Value.ToString();           //编号
                        rowIndex++;
                    }
                }
--------------------编程问答-------------------- 最后要回收垃圾 关闭一切 否则在进程里会有 个未关闭的进程 --------------------编程问答-------------------- --------------------编程问答-------------------- http://www.cpbcw.com/download/325.html 直接打印示例 --------------------编程问答-------------------- 打印整个控件就行了啥。像DataPrinter打印控件,还是不错的 --------------------编程问答--------------------
引用 31 楼 cqjiyong 的回复:
打印整个控件就行了啥。像DataPrinter打印控件,还是不错的

要要的话,我发给你。留下联系方式
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,