如何实现多表同在一张纸上输出(或可导出到EXL) ( 积分: 50 )

  • 主题发起人 主题发起人 bennykgd
  • 开始时间 开始时间
B

bennykgd

Unregistered / Unconfirmed
GUEST, unregistred user!
本人正在为一家印刷厂做一个生产控制的软件,,,其中工程单我是用多个表存放的,有:总信息表,用料表,设计图表,工序表,等 它们之间只有一个工程单号关联着,,,,,,,现在要这么多数据(不定)输出到一张工程单纸上,,,我见过别人是先输出到office中的EXL去(有模块)再进行打印的........软件我已差不多做好了现在是最后关头时候请各位英雄相助 最好有源码给出本人感激不尽,,,,分数方面只有150分 还可以加
 
本人正在为一家印刷厂做一个生产控制的软件,,,其中工程单我是用多个表存放的,有:总信息表,用料表,设计图表,工序表,等 它们之间只有一个工程单号关联着,,,,,,,现在要这么多数据(不定)输出到一张工程单纸上,,,我见过别人是先输出到office中的EXL去(有模块)再进行打印的........软件我已差不多做好了现在是最后关头时候请各位英雄相助 最好有源码给出本人感激不尽,,,,分数方面只有150分 还可以加
 
用控件,几句code就搞定了
http://www.scalabium.com/sme.htm
 
能查出在一起就是能导出到一起
 
利用Excel实现数据录入及打印预览(转贴)
Excel强大的数据录入功能极打印预览功能是其他大多数程序望尘莫及的,能不能在我们自己编的程序中调用 Excel的数据录入功能及预览功能呢。实际上,使用Delphi你能完全控制Excel或Word的所有功能。虽然来自 Excel对象层次内部非常复杂,但我们通过使用Variant(在OLE自动化中使用的Delphi的安全数组版本)通常 可以简洁,容易的实现对Excel的控制。
下面,我将我实际运用的一些方法介绍给大家:
1.启动Excel
在Uses中加入Comobj;
var v:Variant;
begin
v:=CreateOleobject(‘Excel.Application’);
v.Visible:=true;
end;
其中,Comobj中包含了用来检索OLE的对象和向其传发命令的例程,第一行代码启动Excel,执行后Excel 会在内存中出现,因此第二行代码使之可见。
2.关闭Excel
在创建了Excel Application对象后,调用它的Quit方法完成关闭事件。
If not varIsEmpty(v) then
v.quit;
如果需要在关闭前确定是否存盘,加入:
v.DiaplayAlert:=true;
//确定存盘
v.DiaplayAlert:=false;//不存盘,直接退出
3.加入工作表及对其表格内容的操作
var Sheet: Variant;
begin
v.workbook.add;
v.Workbooks.Add;
v.Workbooks[1].WorkSheets[1].Name := '数据录入';
Sheet:= v.Workbooks[1].WorkSheets['数据录入'];
Sheet.Cells[1,1] :='试验';
Label1.Caption:=Sheet.Cells[1,1];
end;
Sheet对象是很多页的集合,其他的Workbooks是工作薄的集合,WorkSheets对象是工作表的集 合,Charts对象是图表的集合。
4.格式的设置
var Range: Variant;
begin
Range := v.Workbooks[1].WorkSheets['数据录入'].Range['A2:M2’];
//单元格从A2到 M2 Range.Merge;
//合并单元格
Range.Rows.RowHeight := 20;
//设置行高
Range.Borders.LineStyle := 1;
//加边框
Range.Columns[2].ColumnWidth := 12;
// 设置列宽
Range.FormulaR1C1 := '标题';
Range.HorizontalAlignment := xlCenter;
//水平对齐方式
Range.VerticalAlignment := xlCenter;
//垂直对齐方式
Range.Characters.Font.Name := '宋体';
//字体
Range.Characters.Font.FontStyle := '加粗';
Range.Characters.Font.Size := 12;
Range.Characters.Font.OutlineFont := False;
//是否有下划线
Range.Characters.Font.ColorIndex := xlAutomatic;
//颜色
end;

其他的属性可以察看MSDN或者其他资料。
5. 打印的设置
var
Sheet: Variant;
begin
Sheet := XLApp1.Workbooks[1].WorkSheets['数据录入'];
Sheet.PageSetup.PrintTitleRows :='$1:$3';
//页眉
Sheet.PageSetup.PrintTitleColumns := '';
Sheet.PageSetup.LeftFooter := ' 注:页脚'+' 总共&N页'+'--第&P页';
//页脚
Sheet.PageSetup.LeftMargin := 30;
//设置边距
Sheet.PageSetup.RightMargin := 30;
Sheet.PageSetup.TopMargin := 30;
Sheet.PageSetup.BottomMargin := 50;
Sheet.PageSetup.PrintQuality := 400;
//分辨率
Sheet.PageSetup.CenterHorizontally := True;//是否水平居中
Sheet.PageSetup.CenterVertically := True;
//是否垂直居中
Sheet.PageSetup.Orientation := 2;
//横向打印
Sheet.PageSetup.Draft := False;
//非草稿模式
Sheet.PageSetup.FirstPageNumber := xlAutomatic;
Sheet.PageSetup.BlackAndWhite := True;
//黑白稿
Sheet.PageSetup.Zoom := 100;
//缩放
sheet.PrintPreView;
//打印预览
end;
好了,到这,我已经介绍了大部分常用的控制方法,试试吧。提醒你,你的机子装了Excel没有……
 
如何加入jpg
 
后退
顶部