黑马程序员技术交流社区
标题:
.NET中如何生成Word和Excel文件?
[打印本页]
作者:
鬼鬼
时间:
2014-3-18 13:21
标题:
.NET中如何生成Word和Excel文件?
本帖最后由 鬼鬼 于 2014-3-23 22:18 编辑
很早以前就遇到的一个问题,请问.NET中如何生成Word和Excel文件?是需要调用API?需要使用COM组件?还是需要引入第三方库?
如果我编写的不是WinForm而是WPF程序,有没有什么新的方法?
求大神解答!
作者:
mdb
时间:
2014-3-18 13:30
生成EXCEL可以使用系统的COM组件,也可以使用第三方控件如NPOI,但是生成WORD我就不知道了,没写过生成WORD的代码...
作者:
shangxin
时间:
2014-3-18 14:19
///******************导出EXCEL表格的函数**********************************************
outputXLS(TStringGrid *sgdresult,AnsiString filename)
{
//TODO: Add your source code here
Variant Ex,wb,sheet,ERange,EBorders;
AnsiString strdir;
register int n;
n = 0;
Ex = CreateOleObject("Excel.Application");
//Ex.OlePropertySet("Visible",false);
Ex.OlePropertySet("Visible",true);
//创建一个新的excel工作本(文件)
wb= Ex.OlePropertyGet("Workbooks");
wb.Exec(Procedure("Add"));
wb=Axl.OlePropertyGet("ActiveWorkbook");
sheet=Workbook.OlePropertyGet("ActiveSheet");
AnsiString strRowTemp;
AnsiString strRange,strtemp;
strRange = "A"+IntToStr(1)+":R"+IntToStr(1);//获取操作范围
ERange = sheet.OlePropertyGet("Range",strRange.c_str());
EBorders = ERange.OlePropertyGet("Borders");//获取边框对象
EBorders.OlePropertySet("linestyle",xlNone);
//AnsiString strData = "报表标题";//报表标题
//sheet.OlePropertyGet("Cells",1,1).OlePropertySet("Value",strData.c_str());
int i = 1;
for (n;n < sgd_temp->RowCount; n++)
{
for (int j = 1;j <= sgd_temp->ColCount; j++)
{
strtemp = sgd_temp->Cells[j-1][n];
sheet.OlePropertyGet("Cells",i,j).OlePropertySet("Value",strtemp.c_str());
}
strRange = "A"+IntToStr(i)+":R"+IntToStr(i);
ERange = sheet.OlePropertyGet("Range",strRange.c_str());
EBorders = ERange.OlePropertyGet("Borders");
EBorders.OlePropertySet("linestyle",xlContinuous);
EBorders.OlePropertySet("weight",xlThin);
EBorders.OlePropertySet("colorindex",xlAutomatic);
i++;
}
wb.OleProcedure("SaveAs",savfilename.c_str()); //保存表格
wb.OleProcedure("Close");//关闭表格
Ex.OleFunction("Quit");//退出Excel
Application->MessageBox("导出完毕!!!","提示",MB_ICONINFORMATION|MB_OK);
}
作者:
鬼鬼
时间:
2014-3-23 22:17
mdb 发表于 2014-3-18 13:30
生成EXCEL可以使用系统的COM组件,也可以使用第三方控件如NPOI,但是生成WORD我就不知道了,没写过生成WORD ...
刚才看了下,应该也可以通过COM组件实现……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2