操作EXCEL导出数据报表的类Word下载.docx
- 文档编号:4461951
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:16
- 大小:18.84KB
操作EXCEL导出数据报表的类Word下载.docx
《操作EXCEL导出数据报表的类Word下载.docx》由会员分享,可在线阅读,更多相关《操作EXCEL导出数据报表的类Word下载.docx(16页珍藏版)》请在冰点文库上搜索。
//Excel启动之后时间
#region创建一个Excel示例
///创建一个Excel示例
publicvoidCreateExcel()
Excel.Applicationexcel=newExcel.Application();
excel.Application.Workbooks.Add(true);
excel.Cells[1,1]="
第行第列"
;
excel.Cells[1,2]="
excel.Cells[2,1]="
excel.Cells[2,2]="
excel.Cells[3,1]="
excel.Cells[3,2]="
//保存
excel.ActiveWorkbook.SaveAs("
./tt.xls"
XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null,null);
//打开显示
excel.Visible=true;
//excel.Quit();
//excel=null;
//GC.Collect();
//垃圾回收
#endregion
#region将DataTable的数据导出显示为报表
///将DataTable的数据导出显示为报表
paramname="
dt"
>
要导出的数据<
/param>
strTitle"
导出报表的标题<
FilePath"
保存文件的路径<
returns>
<
/returns>
publicstringOutputExcel(System.Data.DataTabledt,stringstrTitle,stringFilePath)
beforeTime=DateTime.Now;
Excel.Applicationexcel;
Excel._WorkbookxBk;
Excel._WorksheetxSt;
introwIndex=4;
intcolIndex=1;
excel=newExcel.ApplicationClass();
xBk=excel.Workbooks.Add(true);
xSt=(Excel._Worksheet)xBk.ActiveSheet;
//取得列标题
foreach(DataColumncolindt.Columns)
colIndex++;
excel.Cells[4,colIndex]=col.ColumnName;
//设置标题格式为居中对齐
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).Font.Bold=true;
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment=Excel.XlVAlign.xlVAlignCenter;
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).Select();
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).Interior.ColorIndex=titleColorindex;
//19;
//设置为浅黄色,共计有种
//取得表格中的数据
foreach(DataRowrowindt.Rows)
rowIndex++;
colIndex=1;
if(col.DataType==System.Type.GetType("
System.DateTime"
))
excel.Cells[rowIndex,colIndex]=(Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("
yyyy-MM-dd"
);
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment=Excel.XlVAlign.xlVAlignCenter;
//设置日期型的字段格式为居中对齐
else
System.String"
excel.Cells[rowIndex,colIndex]="
'
"
+row[col.ColumnName].ToString();
//设置字符型的字段格式为居中对齐
excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
//加载一个合计行
introwSum=rowIndex+1;
intcolSum=2;
excel.Cells[rowSum,2]="
合计"
xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]).HorizontalAlignment=Excel.XlHAlign.xlHAlignCenter;
//设置选中的部分的颜色
xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Select();
//xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Interior.ColorIndex=Assistant.GetConfigInt("
ColorIndex"
//1;
//取得整个报表的标题
excel.Cells[2,2]=strTitle;
//设置整个报表的标题格式
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold=true;
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size=22;
//设置报表表格为最适应宽度
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Select();
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Columns.AutoFit();
//设置整个报表的标题为跨列居中
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).HorizontalAlignment=Excel.XlHAlign.xlHAlignCenterAcrossSelection;
//绘制边框
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle=1;
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,2]).Borders[Excel.XlBordersIndex.xlEdgeLeft].Weight=Excel.XlBorderWeight.xlThick;
//设置左边线加粗
xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeTop].Weight=Excel.XlBorderWeight.xlThick;
//设置上边线加粗
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeRight].Weight=Excel.XlBorderWeight.xlThick;
//设置右边线加粗
xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight=Excel.XlBorderWeight.xlThick;
//设置下边线加粗
afterTime=DateTime.Now;
//显示效果
//excel.Visible=true;
//excel.Sheets[0]="
sss"
ClearFile(FilePath);
stringfilename=DateTime.Now.ToString("
yyyyMMddHHmmssff"
)+"
.xls"
excel.ActiveWorkbook.SaveAs(FilePath+filename,Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null,null);
//wkbNew.SaveAsstrBookName;
//excel.Save(strExcelFileName);
#region结束Excel进程
//需要对Excel的DCOM对象进行配置:
dcomcnfg
//excel.Quit();
//excel=null;
xBk.Close(null,null,null);
excel.Workbooks.Close();
excel.Quit();
//注意:
这里用到的所有Excel对象都要执行这个操作,否则结束不了Excel进程
//if(rng!
=null)
//{
//System.Runtime.InteropServices.Marshal.ReleaseComObject(rng);
//rng=null;
//}
//if(tb!
//System.Runtime.InteropServices.Marshal.ReleaseComObject(tb);
//tb=null;
if(xSt!
System.Runtime.InteropServices.Marshal.ReleaseComObject(xSt);
xSt=null;
if(xBk!
System.Runtime.InteropServices.Marshal.ReleaseComObject(xBk);
xBk=null;
if(excel!
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel=null;
GC.Collect();
returnfilename;
#regionKillExcel进程
///结束Excel进程
publicvoidKillExcelProcess()
Process[]myProcesses;
DateTimestartTime;
myProcesses=Process.GetProcessesByName("
Excel"
//得不到Excel进程ID,暂时只能判断进程启动时间
foreach(ProcessmyProcessinmyProcesses)
startTime=myProcess.StartTime;
if(startTime>
beforeTime&
&
startTime<
afterTime)
myProcess.Kill();
#region将DataTable的数据导出显示为报表(不使用Excel对象,使用COM.Excel)
#region使用示例
/*使用示例:
*DataSetds=(DataSet)Session["
AdBrowseHitDayList"
];
stringExcelFolder=Assistant.GetConfigString("
ExcelFolder"
stringFilePath=Server.MapPath("
."
)+"
\\"
+ExcelFolder+"
//生成列的中文对应表
HashtablenameList=newHashtable();
nameList.Add("
ADID"
"
广告编码"
ADName"
广告名称"
year"
年"
month"
月"
browsum"
显示数"
hitsum"
点击数"
BrowsinglIP"
独立IP显示"
HitsinglIP"
独立IP点击"
//利用excel对象
DataToExceldte=newDataToExcel();
stringfilename="
try
{
if(ds.Tables[0].Rows.Count>
0)
{
filename=dte.DataExcel(ds.Tables[0],"
标题"
FilePath,nameList);
}
}
catch
{
//dte.KillExcelProcess();
if(filename!
="
)
Response.Redirect(ExcelFolder+"
+filename,true);
*
**/
///将DataTable的数据导出显示为报表(不使用Excel对象)
数据DataTable<
标题<
生成文件的路径<
nameList"
publicstringDataExcel(System.Data.DataTabledt,stringstrTitle,stringFilePath,HashtablenameList)
COM.Excel.cExcelFileexcel=newCOM.Excel.cExcelFile();
excel.CreateFile(FilePath+filename);
excel.PrintGridLines=false;
COM.Excel.cExcelFile.MarginTypesmt1=COM.Excel.cExcelFile.MarginTypes.xlsTopMargin;
COM.Excel.cExcelFile.MarginTypesmt2=COM.Excel.cExcelFile.MarginTypes.xlsLeftMargin;
COM.Excel.cExcelFile.MarginTypesmt3=COM.Excel.cExcelFile.MarginTypes.xlsRightMargin;
COM.Excel.cExcelFile.MarginTypesmt4=COM.Excel.cExcelFile.MarginTypes.xlsBottomMargin;
doubleheight=1.5;
excel.SetMargin(refmt1,refheight);
excel.SetMargin(refmt2,refheight);
excel.SetMargin(refmt3,refheight);
excel.SetMargin(refmt4,refheight);
COM.Excel.cExcelFile.FontFormattingff=COM.Excel.cExcelFile.FontFormatting.xlsNoFormat;
stringfont="
宋体"
shortfontsize=9;
excel.SetFont(reffont,reffontsize,refff);
byteb1=1,
b2=12;
shorts3=12;
excel.SetColumnWidth(refb1,refb2,refs3);
stringheader="
页眉"
stringfooter="
页脚"
excel.SetHeader(refheader);
excel.SetFooter(reffooter);
COM.Excel.cExcelFile.ValueTypesvt=COM.Excel.cExcelFile.ValueTypes.xlsText;
COM.Excel.cExcelFile.CellFontcf=COM.Excel.cExcelFile.CellFont.xlsFont0;
COM.Excel.cExcelFile.CellAlignmentca=COM.Excel.cExcelFile.CellAlignment.xlsCentreAlign;
COM.Excel.cExcelFile.CellHiddenLockedchl=COM.Excel.cExcelFile.CellHiddenLocked.xlsNormal;
//报表标题
intcellformat=1;
//introwindex=1,colindex=3;
//objecttitle=(object)strTitle;
//excel.WriteValue(refvt,refcf,refca,refchl,refrowindex,refcolindex,reftitle,ref
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作 EXCEL 导出 数据 报表