c# Aspose.Cells 通過Excel模板生產(chǎn)excel數(shù)據(jù)再打印
多的不說,我們先來利用Northwind做兩個小demo。先說說Aspose.Cells的模板語法:
- &=DataSource.Field,&=[DataSource].[Field]是對DataTable和幾何類型的引用,將會從當(dāng)前行開始豎直向下生成多行數(shù)據(jù)。
- &=$data:是對變量或數(shù)組的引用。數(shù)組存在skip,horizontal等屬性,具體參見
- &=&=動態(tài)公式計算;{r}當(dāng)前行,{c}當(dāng)前列,{-n},{n}當(dāng)前行或列的偏移量前n或后n。
- &==是動態(tài)計算,如excel,if等語句。(if(logic_test,true_value,false_value))
還有其他更為復(fù)雜的匯總計算的表達(dá)式,這里也不在這節(jié)多講,有興趣的朋友,可以去官網(wǎng)看看。我們先來個簡單的例子,光說,總是不行的,還是要代碼實踐才能說明一切:

代碼如下:

App_Code.SqlDbHelper help = new App_Code.SqlDbHelper();
var s = Aspose.Cells.CellsHelper.GetVersion();
var sql = "select WL_TZ,WL_CL,RPCJH_SL,WL_MC,RPCJH_JHKGRQ,RPCJH_JHID,RPCJH_JHID as RPCJH_JHID1,RPCJH_GXID,U_RPCJH_KH,(select rtrim((cast(GYLX_GXID as char(2)))+' '+ltrim(GYLX_GXMC)) from GYLX where GYLX_GYLXID=wo.WO_GYLXID and GYLX_GXID=RPCJH_GXID) as gxmc from RPCJH left join wl on RPCJH_WLID=WL_WLID left join wo on wo.WO_WOID=RPCJH_WOID where RPCJH_JHID='JHA1909152' and RPCJH_BZGXID!='888' ";
var dt = help.ExecuteDataTable(sql);
dt.TableName = "Customers";
Workbook workBook = new Workbook(@"E:\KaBoProject\GTDB\GTDB\bin\Debug\機加作業(yè)計劃卡.xls");
WorkbookDesigner designer = new WorkbookDesigner(workBook);
//數(shù)據(jù)源
designer.SetDataSource(dt);
//報表單位
designer.SetDataSource("RPCJH_JHID", dt.Rows[0]["RPCJH_JHID"].ToString().Trim());
designer.SetDataSource("U_RPCJH_KH", dt.Rows[0]["U_RPCJH_KH"].ToString().Trim());
designer.SetDataSource("RPCJH_JHID1", "計劃編號:" + dt.Rows[0]["RPCJH_JHID1"].ToString().Trim() + " 領(lǐng)卡人:");
designer.SetDataSource("RPCJH_JHKGRQ", "派工日期:" +Convert.ToDateTime(dt.Rows[0]["RPCJH_JHKGRQ"].ToString().Trim()).ToShortDateString());
designer.SetDataSource("WL_MC", "名稱:" + dt.Rows[0]["WL_MC"].ToString().Trim());
designer.SetDataSource("WL_TZ", dt.Rows[0]["WL_TZ"].ToString().Trim());
designer.SetDataSource("WL_CL", dt.Rows[0]["WL_CL"].ToString().Trim());
designer.SetDataSource("RPCJH_SL", dt.Rows[0]["RPCJH_SL"].ToString().Trim());
designer.Process();
workBook.Save(@"E:\KaBoProject\GTDB\GTDB\bin\Debug\2.xls", SaveFormat.Xlsx);
designer = null;
生成的excel如下

打印代碼如下:
Workbook workbook = new Workbook(@"E:\KaBoProject\GTDB\GTDB\bin\Debug\2.xls");
//Get the worksheet to be printed
Worksheet worksheet = workbook.Worksheets[0];//獲取該Excel文檔的第一個工作表
//PageSetup pageSetup = worksheet.PageSetup;
//pageSetup.Orientation = PageOrientationType.Landscape;
//pageSetup.LeftMargin = 0;
//pageSetup.RightMargin = 0.1;
//pageSetup.BottomMargin = 0.3;
//pageSetup.PrintArea = "A2:J29";
//Apply different Image / Print options.
Aspose.Cells.Rendering.ImageOrPrintOptions options = new Aspose.Cells.Rendering.ImageOrPrintOptions();
//Set the Printing page property
//options.PrintingPage = PrintingPageType.IgnoreStyle;
//Render the worksheet
SheetRender sr = new SheetRender(worksheet, options);
System.Drawing.Printing.PrinterSettings printSettings = new System.Drawing.Printing.PrinterSettings();
string strPrinterName = printSettings.PrinterName;
//send to printer
//System.Drawing.Image map = sr.ToImage(0);
sr.ToPrinter(strPrinterName);
玉環(huán)人力網(wǎng)(又名玉環(huán)人才網(wǎng))是玉環(huán)人才吧旗下一流的玉環(huán)人力資源招聘行業(yè)服務(wù)品牌,匯集海量玉環(huán)人才,開放玉環(huán)人才簡歷和玉環(huán)崗位,提供玉環(huán)招聘網(wǎng),玉環(huán)人才市場動態(tài)行情,玉環(huán)勞務(wù)派遣,玉環(huán)培訓(xùn)等,是玉環(huán)最大的人才網(wǎng)站。
浙公網(wǎng)安備 33010602011771號