2024年2月9日发(作者:)
NPOI 导出 Word (没有Office操作Word)
分类: C# | 作者: yuyang00000 相关 | 发布日期 : 2013-03-04 | 热度 : 392°
NPOI已出现一段时间了,目前版本2.0 Beta 2 [v2.0.5],网上关于NPOI操作xlsx文章较多,而关于docx的几乎没有,尽管NPOI对于Word还不稳定,经过一阵捣鼓后终于实现了表的简单操作:创建表、创建行、创建单元,单元行和列的合并。
环境:vs2010,netframework4
view source
print?
private void button1_Click(object sender, EventArgs e)
{
MemoryStream ms = new MemoryStream();
XWPFDocument m_Docx = new XWPFDocument();
m_Docx = CreatDocxTable();
m_(ms);
();
SaveToFile(ms,"d:");
}
protected XWPFDocument CreatDocxTable()
{
XWPFDocument m_Docx = new XWPFDocument();
XWPFParagraph p0 = m_Paragraph();
XWPFRun r0 = Run();
t("DOCX表");
XWPFTable table = m_Table(1, 3);//创建一行3列表
(0).GetCell(0).SetText("111");
(0).GetCell(1).SetText("222");
(0).GetCell(2).SetText("333");
XWPFTableRow m_Row = Row();//创建一行
m_Row = Row();//创建一行
m_l(0).SetText("211");
//合并单元格
m_Row = NewTableRow(0);//表头插入一行
XWPFTableCell cell = m_Cell();//创建一个单元格,创建单元格时就创建了一个CT_P
CT_Tc cttc = c();
CT_TcPr ctPr = TcPr();
= "3";//合并3列
st()[0].AddNewPPr().AddNewJc().val= ST_;
st()[0].AddNewR().AddNewT().Value
= "abc";
XWPFTableRow td3 = NewTableRow( -
1);//插入行
cell = Cell();
cttc = c();
ctPr = TcPr();
= "3";
st()[0].AddNewPPr().AddNewJc().val = ST_;
st()[0].AddNewR().AddNewT().Value = "qqq";
//表增加行,合并列
CT_Row m_NewRow = new CT_Row();
m_Row = new XWPFTableRow(m_NewRow, table);
(m_Row); //必须要
cell = m_Cell();
cttc = c();
ctPr = TcPr();
= "3";
st()[0].AddNewPPr().AddNewJc().val = ST_;
st()[0].AddNewR().AddNewT().Value = "sss";
//表未增加行,合并2列,合并2行
//1行
m_NewRow = new CT_Row();
m_Row = new XWPFTableRow(m_NewRow, table);
(m_Row);
cell = m_Cell();
cttc = c();
ctPr = TcPr();
= "2";
VMerge().val = ST_t;//合并行
VAlign().val = ST_;//垂直居中
st()[0].AddNewPPr().AddNewJc().val = ST_;
st()[0].AddNewR().AddNewT().Value = "xxx";
cell = m_Cell();
t("ddd");
//2行,多行合并类似
m_NewRow = new CT_Row();
m_Row = new XWPFTableRow(m_NewRow, table);
(m_Row);
cell = m_Cell();
cttc = c();
ctPr = TcPr();
= "2";
VMerge().val = ST_Merge.@continue;//合并行
cell = m_Cell();
t("kkk");
////3行
//m_NewRow = new CT_Row();
//m_Row = new XWPFTableRow(m_NewRow, table);
//(m_Row);
//cell = m_Cell();
//cttc = c();
//ctPr = TcPr();
// = "2";
//VMerge().val = ST_Merge.@continue;
//cell = m_Cell();
//t("hhh");
return m_Docx;
}
static void SaveToFile(MemoryStream ms, string fileName)
{
using (FileStream fs = new FileStream(fileName,
, ))
{
byte[] data = y();
}
}
(data, 0, );
();
data = null;


发布评论