请教各位大侠,关于EXCEL,报表相关的问题,来者有分!

xmqy110 2003-10-22 05:58:29
在下有几个问题,请大侠们帮帮忙!
1、设计出的表格需有斜线,还要跨多行多列,象课程表的样式,这个鞋线怎么画啊?
2、因为要有如1的表头格式,我就用表格来写字段名,用DATAGRID写字段值,我需要把他们生成报表,还要生成图形报表,目前我是把DATAGRID的值导出到EXCEL里,但这个表格也能导入EXCEL里吗?要不然字段名都没有了。或者能直接在水晶报表中设计出来这么复杂的格式吗?然后再全部导入EXCEL或WORD中,可以吗?
...全文
23 点赞 收藏 31
写回复
31 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
haoliqi 2003-11-03
http://www.uncj.net/Exce.htm
回复
flyinglz 2003-11-03
在服务端运行
回复
flyinglz 2003-10-31
就是将报表的表头及格式在EXCEL中做好,然后在打开这些报表,通过代码填入数据.
// 获取一个唯一的临时文件名
string sReportFile = Path.GetTempFileName();
//将模板文件复制到同一文件
File.Copy( TemplateFileName,sReportFile,true);
//用EXCEL打开模板文件
oBook = oBooks.Open( TemplateFileName, oMissing, oMissing,
oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
// END EXCEL VERSION 10.0
oSheet = (Excel._Worksheet) oBook.Worksheets.get_Item(SheetIndex);
//将数据填入到打开EXCEL文件中
this.oSheet.Cells[i+this.StartRow ,j+this.StartColumn] =dv[i][j].ToString();
//将更改保存到临时文件中
this.oBook.SaveAs(sReportFile, oMissing, oMissing, oMissing, oMissing, oMissing,Excel.XlSaveAsAccessMode.xlNoChange,
Excel.XlSaveConflictResolution.xlLocalSessionChanges, oMissing, oMissing, oMissing,oMissing);
//用户完成导出动作后,删除临时文件
File.Delete(strDeletFile);
回复
foxballHLQ 2003-10-31
你在excel中录制宏,然后看录制后的代码怎么写就可以了
回复
coolpine 2003-10-31
to flyinglz(云溪飘叶) (:
你的代码是运行在服务器端还是客户端?
回复
flyinglz 2003-10-29
将所有要生成的表用EXCEL做好,然后将数据库的数据填入就可以了

就是使用模板啦!!


回复
yjmfdm 2003-10-29
我这个函数做了很多重载,大部分情况都有了,只是没有画斜线的功能。另外付:我用的是UltraWebGrid,并不是微软的Grid,需要做一下改动才能直接使用。
回复
yjmfdm 2003-10-29
我这个函数做了很多重载,大部分情况都有了,只是没有画斜线的功能。另外付:我用的是UltraWebGrid,并不是微软的Grid,需要做一下改动才能直接使用。
回复
xmqy110 2003-10-29
试试
回复
yjmfdm 2003-10-29
/// <summary>
/// 通过Grid对象导出excel文件,应用于表头固定,无分页、无合计或合计在网格中的情况
/// </summary>
/// <param name="grd">需要导出的网格对象</param>
/// <param name="FileName">下载文件名(不带扩展符)</param>
/// <param name="exportFileType">导出类型</param>
/// <param name="TBHeadName">标题名称</param>
/// <param name="ExPara">需要附加的表头表尾标注,如制表人等</param>
public static void ExportFileByGrid(UltraWebGrid grd,string FileName,ExportFileTypes exportFileType,string TBHeadName,EXPARA[] ExPara)
{
//先确认从第几列开始导出
int intBeginCol=0;
if(grd.Columns[0].HeaderText==null || grd.Columns[0].HeaderText.Trim()=="")
{
//该列为标示列,不导出
intBeginCol=1;
}

string strExt;
switch(exportFileType)
{
case ExportFileTypes.Excel:
strExt = "xls";
break;
case ExportFileTypes.Word:
strExt = "doc";
break;
default:
strExt = "htm";
break;
}
FileName += "." + strExt;
HttpResponse resp;

resp =grd.Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); // 解决中文乱码之关键
// resp.Charset = "utf-8"
// resp.AddFileDependency(FileName)
// resp.ContentType = "Text/HTML"
//resp.ContentType = "application/vnd.ms-excel";
//resp.AppendHeader("Content-Type", "text/html; charset=gb2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + grd.Page.Server.UrlEncode( FileName)); // 必要,做成下载文件
int intRowsCount = grd.Rows.Count;//行数
int intColsCount=grd.Columns.Count;//列数
string strTmp;

resp.Write("<HTML>\r\n");
resp.Write("<HEAD>\r\n");
strTmp = "<meta http-equiv=\"Content-Type\" content=\"Application/vnd.ms-excel; charset=gb2312\">" + "\n";
resp.Write(strTmp);
resp.Write("</HEAD>\r\n");
resp.Write("<BODY>\r\n");

// 输出标题
if(TBHeadName.Trim() !="")
{
//strTmp = "<table ><tr><td align='center'><font size=5.5 >" + TBHeadName + "</font></td></tr></table>";
strTmp = "<h3 align=center style=\"FONT-SIZE: 16pt\">" + TBHeadName + "</h3>";
//<h3 style="FONT-SIZE: 25px">aaaa</h3>
resp.Write(strTmp);
}
// 输出表头标注--如填报单位等
resp.Write("<p>");
strTmp="";
for(int ii=0;ii<=ExPara.Length-1;ii++)
{
//先输出在表前面的

if(ExPara[ii].Location==0)
{
strTmp+="<font style=\"FONT-SIZE: 10pt\"><b>"+ExPara[ii].FieldName + ":</b></font><font style=\"FONT-SIZE: 10pt\">" + ExPara[ii].FieldValue +"</font>";//+ "            ";
}
}
resp.Write(strTmp);
resp.Write("</p>\r\n");

//输出主表格
resp.Write("<TABLE cellSpacing=0 cellPadding=0 border=1>\r\n");
//以下一行一行输出表格信息

//输出表头
resp.Write("<tr>");
strTmp="";
for(int ii=intBeginCol;ii<=intColsCount-1;ii++)
{

if(!grd.Columns[ii].Hidden)
{
strTmp+="<td align=middle><b><font style=\"FONT-SIZE: 10.5pt\">"+grd.Bands[0].Columns[ii].HeaderText + "</font></b></td>" + "\r\n";
}
}
resp.Write(strTmp);
resp.Write("</tr>" + "\r\n");

//输出网格各行数据

for(int ii=0;ii<=intRowsCount-1;ii++) //遍历各行
{
strTmp="";
resp.Write("<tr>" + "\r\n");
UltraGridRow row=grd.Rows[ii];
for(int jj=intBeginCol;jj<=intColsCount-1;jj++)
{
if(!grd.Columns[jj].Hidden)
{
strTmp+="<td align=left><font style=\"FONT-SIZE: 10pt\">"+row.Cells[jj].GetText() + "</font></td>" + "\r\n";
}
}
resp.Write(strTmp);

resp.Write("</tr>"+ "\r\n");

}

resp.Write("</TABLE>\r\n");

// 输出表尾标注--如填报单位等
resp.Write("<p>");
strTmp="";
for(int ii=0;ii<=ExPara.Length-1;ii++)
{
//先输出在表前面的

if(ExPara[ii].Location==1)
{
strTmp+="<font style=\"FONT-SIZE: 10pt\"><b>"+ExPara[ii].FieldName + ":</b>" + ExPara[ii].FieldValue + "</font>            ";
}
}
resp.Write(strTmp);
resp.Write("</p>\r\n");
resp.Write("</BODY>\r\n");
resp.Write("</HTML>\r\n");
resp.End();

}
回复
keeven 2003-10-29
购买cell插件吧,能测地解决你的问题
回复
xmqy110 2003-10-29
to: flyinglz(云溪飘叶)
你的意思是整张表(包括表头,表身?)都用EXCEL设计好,再导入WEB页中吗?模板怎么用啊,EXCEL我不熟。
那我要再输出到EXCEL打印,该怎么做啊,能保持表格不变吗?
我会试试。
希望你能多说一点。
回复
caoit 2003-10-28
up
回复
gzhubonet 2003-10-28
我帮你顶啊!!!!!!!!!!!!!!!
祝你成功!
回复
xmqy110 2003-10-28
我顶
回复
xmqy110 2003-10-28
我再顶
真难啊
回复
xmqy110 2003-10-28
好啊,谢谢,我的EMAIL是xmqy110@yahoo.com.cn
回复
yjmfdm 2003-10-28
给你一个文件,可以导出不同表头的格式到Excel中,不过没有你说的画斜线的功能!!!
回复
xmqy110 2003-10-28
高手们,快帮帮我吧
回复
xmqy110 2003-10-26
那我要再把整个查询到的表导出到EXCEL里,好打印,请问表头如何导入呢?并且整个格式都不变.
回复
加载更多回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2003-10-22 05:58
社区公告
暂无公告