作者:海淀区小张_703 | 来源:互联网 | 2023-09-17 18:55
我们浏览很多网站时都会看到下载文件的功能(图片、word文档等),好巧不巧的是贫道近日也遇到了这个问题,于是写一篇博客记录一下。技术点:MVC、NPOI、Form表单。具体如何实现,待贫道喝一
我们浏览很多网站时都会看到下载文件的功能(图片、word文档等),好巧不巧的是贫道近日也遇到了这个问题,于是写一篇博客记录一下。
技术点:MVC、NPOI、Form表单。
具体如何实现,待贫道喝一口水慢慢道来。
1. 引入NPOI的Nuget包,这个相信道友们都不陌生。
2.添加控制器及方法
public class DownloadController : Controller
{
// GET: Download
public ActionResult Index()
{
return View();
}
///
/// 下载Word
///
///
public ActionResult ExportWord()
{
return View();
}
}
3.修改ExportWord方法
public ActionResult ExportWord()
{
// 创建流
MemoryStream ms = new MemoryStream();
// 创建文档对象
XWPFDocument m_Docx = new XWPFDocument();
// 设置页边距
CT_SectPr sectPr = new CT_SectPr();
sectPr.pgMar = new CT_PageMar();
sectPr.pgMar.bottom = "1443";
sectPr.pgMar.top = "1443";
sectPr.pgMar.left = 1801;
sectPr.pgMar.right = 1801;
m_Docx.Document.body.sectPr = sectPr;
//创建段落
XWPFParagraph p1 = m_Docx.CreateParagraph();
p1.Alignment = ParagraphAlignment.CENTER;
// 该段落的文字以及样式
XWPFRun runTitle = p1.CreateRun();
runTitle.IsBold = true;
runTitle.SetText("下载Word");
runTitle.FontSize = 18;
runTitle.SetFontFamily("仿宋", FontCharRange.None);// 字体设置
XWPFParagraph p2 = m_Docx.CreateParagraph();
// 段落格式居中
p2.Alignment = ParagraphAlignment.CENTER;
XWPFRun runTitle2 = p2.CreateRun();
runTitle2.FontSize = 18;
XWPFParagraph p3 = m_Docx.CreateParagraph();
p3.Alignment = ParagraphAlignment.LEFT;
XWPFRun runTitle3 = p3.CreateRun();
runTitle3.IsBold = false;
runTitle3.SetText("这里可以写我们文档中的内容,比如数据库中的数据之类的。");
runTitle3.FontSize = 16;
runTitle3.SetFontFamily("仿宋", FontCharRange.None);//设置雅黑字体
XWPFParagraph p5 = m_Docx.CreateParagraph();
p5.Alignment = ParagraphAlignment.RIGHT;
XWPFRun runTitle5 = p5.CreateRun();
runTitle5.SetText("正所谓死道友莫死贫道");
runTitle5.FontSize = 16;
runTitle5.SetFontFamily("仿宋", FontCharRange.None);
// 将创建好的文档对象写入流
m_Docx.Write(ms);
ms.Flush();
// 将流内容写入字节数据
byte[] data = ms.ToArray();
// 指定文件内容,类型以及文件名并返回
return File(data, "application/octet-stream", "自定义Word.docx");
}
4.创建下载页面
现在后台方法有了,我们还需要一个页面来触发这个方法。创建控制器的时候有一个默认的Index方法,贫道在这里就用它了。
添加完视图之后,修改里面的代码,创建一个表单,一个sumbit按钮,嗯。贫道就用这提交表单的方式来触发ExportWord方法。
打开页面之后就是这个样子,虽然有点Low。。。但是贫道只是起了一个演示作用,就无所谓了。
点一下,处罚后台的方法,然后下载文件。 浏览器底部已显示下载完成。
打开这个Word 看看内容是不是和我们在后台写一样
完美收功!最后放一张gif。