536 lines
16 KiB
Plaintext
536 lines
16 KiB
Plaintext
TOfficeApi().CodePage('中文');
|
|
|
|
testCount := 0;
|
|
sheetName := "你好";
|
|
sheetName2 := "中文";
|
|
|
|
// OpenFile
|
|
excel := new TSExcelFile();
|
|
[err, errmsg] := excel.OpenFile('', 'd:\\temp\\raw.xlsx');
|
|
PrintInfo("OpenFile", err, errmsg);
|
|
|
|
// Save
|
|
[err, errmsg] := excel.Save();
|
|
PrintInfo("Save", err, errmsg);
|
|
|
|
excel := new TSExcelFile();
|
|
|
|
// NewFile
|
|
[err, errmsg] := excel.NewFile();
|
|
PrintInfo("NewFile", err, errmsg);
|
|
|
|
// SaveAs
|
|
// [err, errmsg] := excel.SaveAs('', 'd:\\temp\\test.xlsx');
|
|
// PrintInfo("SaveAs", err, errmsg);
|
|
|
|
// FileName
|
|
name := excel.FileName();
|
|
println("[success] name = {}", name);
|
|
|
|
// GetSheetsCount
|
|
sheetCount := excel.GetSheetsCount();
|
|
println("[success] GetSheetsCount = {}", sheetCount);
|
|
|
|
// SetSheetName
|
|
excel.SetSheetName("sheet1", sheetName);
|
|
println("[success] SetSheetName");
|
|
|
|
// GetSheetName
|
|
Name := excel.GetSheetName(0);
|
|
println("[success] GetSheetName = {}", Name);
|
|
|
|
// NewSheet
|
|
excel.NewSheet(sheetName2);
|
|
println("[success] NewSheet");
|
|
|
|
// GetSheets
|
|
sheets := excel.GetSheets();
|
|
println("[success] sheets = {}", sheets);
|
|
|
|
// DeleteSheet
|
|
excel.NewSheet("test1");
|
|
excel.DeleteSheet("test1");
|
|
println("[success] DeleteSheet");
|
|
|
|
// SetCellValue
|
|
excel.SetCellValue(sheetName, "A1", 100);
|
|
excel.SetCellValue(sheetName, "F1", "中文的壹佰");
|
|
println("[success] SetCellValue");
|
|
|
|
// GetCellValue
|
|
[err, errmsg] := excel.GetCellValue(sheetName, "A1");
|
|
PrintInfo("GetCellValue A1 ", err, errmsg);
|
|
[err, errmsg] := excel.GetCellValue(sheetName, "F1");
|
|
PrintInfo("GetCellValue F1 ", err, errmsg);
|
|
|
|
// TotalCols
|
|
totalCols := excel.TotalCols(sheetName);
|
|
println("[success] TotalCols = {}", totalCols);
|
|
|
|
// TotalRows
|
|
totalRows := excel.TotalRows(sheetName);
|
|
println("[success] TotalRows = {}", totalRows);
|
|
|
|
// SetCellRichText
|
|
richText := TOfficeObj('TRichtext');
|
|
text1 := richText.AddText('Hello 你好');
|
|
text1.Font.Size := 35;
|
|
text1.Font.Color := "FFF000";
|
|
text2 := richText.AddText(" World");
|
|
text2.Font.Size := 25;
|
|
text2.Font.Bold := true;
|
|
excel.SetCellRichText(sheetName, "A2", richText);
|
|
text2.Text := "python";
|
|
excel.SetCellRichText(sheetName, "A3", richText);
|
|
|
|
// GetCellRichText
|
|
arr := excel.GetCellRichText(sheetName, "A2");
|
|
println("[success] GetCellRichText = {}", arr);
|
|
|
|
// ClearCell
|
|
excel.ClearCell(sheetName, "A1");
|
|
//excel.ClearCell(sheetName);
|
|
println("[success] ClearCell");
|
|
|
|
// SetCellFormula
|
|
excel.SetCellFormula(sheetName, "A2", "=100*50");
|
|
println("[success] SetCellFormula");
|
|
|
|
// GetCellFormula
|
|
[err, errmsg] := excel.GetCellFormula(sheetName, "A2");
|
|
PrintInfo("GetCellFormula", err, errmsg);
|
|
|
|
// SetSheetRow
|
|
excel.SetSheetRow(sheetName, "C3", array(1, 2, 3, 4, "a", "b"));
|
|
println("[success] SetSheetRow");
|
|
|
|
// InsertTable
|
|
table := array((1, 2, "你好"), (4, 5, "b"));
|
|
//table2 := array(("title1" :1, "title2": 2), ("title1": 3, "title2": 4));
|
|
[err, errmsg] := excel.InsertTable(sheetName, "A5", table);
|
|
PrintInfo("InsertTable", err, errmsg);
|
|
|
|
// GetTable
|
|
table := excel.GetTable(sheetName, "A5", "B7");
|
|
println("[success] GetTable = {}", table);
|
|
|
|
// InsertCol
|
|
excel.InsertCol(sheetName, "B");
|
|
excel.InsertCol(sheetName, "B");
|
|
println("[success] InsertCol");
|
|
|
|
// InsertRow
|
|
excel.InsertRow(sheetName, 3);
|
|
excel.InsertRow(sheetName, 3);
|
|
println("[success] InsertRow");
|
|
|
|
// RemoveCol
|
|
excel.RemoveCol(sheetName, "B");
|
|
println("[success] RemoveCol");
|
|
|
|
// RemoveRow
|
|
excel.RemoveRow(sheetName, 3);
|
|
println("[success] RemoveRow");
|
|
|
|
// SetRowHeight
|
|
excel.SetRowHeight(sheetName, 1, 30);
|
|
excel.SetRowHeight(sheetName, 15, 30);
|
|
println("[success] SetRowHeight");
|
|
|
|
// GetRowHeight
|
|
height := excel.GetRowHeight(sheetName, 2);
|
|
println("[success] GetRowHeight = {}", height);
|
|
height := excel.GetRowHeight(sheetName, 15);
|
|
println("[success] GetRowHeight = {}", height);
|
|
|
|
// SetColWidth
|
|
excel.SetColWidth(sheetName, "A", "D", 20);
|
|
println("[success] SetColWidth");
|
|
|
|
// GetColWidth
|
|
width := excel.GetColWidth(sheetName, "A");
|
|
println("[success] GetColWidth = {}", width);
|
|
width := excel.GetColWidth(sheetName, "E");
|
|
println("[success] GetColWidth = {}", width);
|
|
|
|
// SetSheetDefaultColWidth
|
|
excel.SetSheetDefaultColWidth(sheetName, 15);
|
|
println("[success] SetSheetDefaultColWidth");
|
|
|
|
// GetSheetDefaultColWidth
|
|
width := excel.GetSheetDefaultColWidth(sheetName);
|
|
println("[success] GetSheetDefaultColWidth = {}", width);
|
|
|
|
// AddComment
|
|
excel.AddComment(sheetName, "A1", "csh", "heiheihei");
|
|
println("[success] AddComment");
|
|
|
|
// AddChart
|
|
data := array(("Name":"Small","Apple":2,"Orange":3,"Pear":3),
|
|
("Name":"Normal","Apple":5,"Orange":2,"Pear":4),
|
|
("Name":"Large","Apple":6,"Orange":7,"Pear":8));
|
|
chart := TOfficeObj('TChart');
|
|
chart.Type := 'col';
|
|
chart.VaryColors := true;
|
|
chart.BegColOff := 20000;
|
|
chart.BegRowOff := 20000;
|
|
chart.Name := 'test chart 1';
|
|
chart.Title := 'Hans Chart';
|
|
|
|
chart.AddSeries('Sheet1!$A$6', 'Sheet1!$B$5:$D$5', 'Sheet1!$B$6:$D$6');
|
|
chart.AddSeries('Sheet1!$A$7', 'Sheet1!$B$5:$D$5', 'Sheet1!$B$7:$D$7');
|
|
chart.AddSeries('Sheet1!$A$8', 'Sheet1!$B$5:$D$5', 'Sheet1!$B$8:$D$8');
|
|
|
|
chart.ShowLegendKey := false;
|
|
chart.Legend.Position := 'left';
|
|
|
|
chart.ShowBubbleSize := true;
|
|
chart.ShowCatName := false;
|
|
chart.ShowLeaderLines := false;
|
|
chart.ShowPercent := true;
|
|
chart.ShowSerName := true;
|
|
chart.ShowVal := true;
|
|
chart.ShowBlanksAs := 'zero';
|
|
|
|
excel.NewSheet('Sheet1');
|
|
[err, errinfo] := excel.InsertTable("Sheet1","A5",data, true);
|
|
chart1 := excel.AddChart('Sheet1', 'A11:G30', chart);
|
|
println("[success] AddChart");
|
|
|
|
// GetCharts
|
|
[err, charts] := excel.GetCharts('Sheet1');
|
|
for i:=0 to length(charts)-1 do Begin
|
|
println('ChartName={}, Title={}, Series={}',charts[i].Chart.Name, charts[i].Chart.Title, charts[i].Chart.Series);
|
|
End;
|
|
|
|
// SplitCellName
|
|
[err, col, row] := excel.SplitCellName("AK47");
|
|
if not err then println("[success] {} = col : {}, row = {}", "SplitCellName", col, row);
|
|
|
|
// ColumnNameToNumber
|
|
[err, errmsg] := excel.ColumnNameToNumber("AK");
|
|
PrintInfo("ColumnNameToNumber", err, errmsg);
|
|
|
|
// ColumnNumberToName
|
|
[err, errmsg] := excel.ColumnNumberToName(37);
|
|
PrintInfo("ColumnNumberToName", err, errmsg);
|
|
|
|
// CellNameToCoordinates
|
|
[err, col, row] := excel.CellNameToCoordinates("A2");
|
|
if not err then println("[success] {} = col : {}, row = {}", "CellNameToCoordinates", col, row);
|
|
|
|
// RGBToHSL
|
|
[h, s, l] := excel.RGBToHSL(255, 15, 33);
|
|
println("[success] {} = {}, {}, {}", "RGBToHSL", h, s, l);
|
|
|
|
// HSLToRGB
|
|
[r, g, b] := excel.HSLToRGB(h, s, l);
|
|
println("[success] {} = {}, {}, {}", "HSLToRGB", r, g, b);
|
|
|
|
// NewStyle
|
|
style := TOfficeObj('TStyle');
|
|
style.Font.Color := "A020F0";
|
|
style.Font.Size := 22;
|
|
style.Font.Name := "黑体";
|
|
style.Font.Bold := True;
|
|
style.Font.Charset := "134";
|
|
style.Font.Script := "subscript";
|
|
style.Font.Underline := "double";
|
|
style.Font.Strikethrough := True;
|
|
style.Font.Italic := True;
|
|
style.Alignment.Horizontal := "center";
|
|
style.Alignment.Vertical := "justify";
|
|
style.Alignment.WrapText := True;
|
|
style.Alignment.ReadingOrder := 2;
|
|
style.Border.Left.LineStyle := "thin";
|
|
style.Border.Left.Color := "A020F0";
|
|
style.Border.Right.LineStyle := "thin";
|
|
style.Border.Right.Color := "FF0000";
|
|
style.Border.Bottom.LineStyle := "mediumDashed";
|
|
style.Border.Bottom.Color := "FF0000";
|
|
style.Border.Top.LineStyle := "mediumDashed";
|
|
style.Border.Top.Color := "FF0000";
|
|
style.Border.DiagonalDown := True;
|
|
style.Border.DiagonalUp := True;
|
|
style.Border.Diagonal.LineStyle := "double";
|
|
style.Border.Diagonal.Color := "A020F0";
|
|
style.NumberFormat.FormatCode := "#,##0.000_ ";
|
|
//style.Fill.Pattern.PatternType := "solid";
|
|
//style.Fill.Pattern.ForegroundColor := "FF6699FF";
|
|
//style.Fill.Pattern.BackgroundColor := "FFFF0000";
|
|
style.Fill.Gradient.ThemeColor1 := 0;
|
|
style.Fill.Gradient.ThemeColor2 := 4;
|
|
style.Fill.Gradient.Shading := 1;
|
|
style.Protection.Hide := 1;
|
|
style.Protection.Lock := 1;
|
|
|
|
styleid1 := excel.NewStyle(style);
|
|
println("[success] NewStyle = {}", styleid1);
|
|
|
|
// SetCellStyle
|
|
excel.SetCellStyle(sheetName, "A1", "A2", styleid1);
|
|
println("[success] SetCellStyle");
|
|
|
|
styleid := excel.GetCellStyle(sheetName, "A1");
|
|
println("[success] GetCellStyle = {}", styleid);
|
|
styleid := excel.GetCellStyle(sheetName, "D4");
|
|
println("[success] GetCellStyle = {}", styleid);
|
|
|
|
// SetSheetHeaderFooter
|
|
headerFooter := TOfficeObj("THeaderFooter");
|
|
headerFooter.DifferentOddEven := true;
|
|
headerFooter.DifferentFirst := true;
|
|
headerFooter.ScaleWithDoc := False;
|
|
headerFooter.AlignWithMargin := False;
|
|
headerFooter.OddHeader := "&L123&456&789";
|
|
headerFooter.OddFooter := "&Ldef&Rhij";
|
|
headerFooter.EvenHeader := "&L123&R456";
|
|
headerFooter.EvenFooter := "&L456&R789";
|
|
headerFooter.FirstHeader := "&L++";
|
|
headerFooter.FirstFooter := "&R--";
|
|
excel.SetSheetHeaderFooter(sheetName, headerFooter);
|
|
println("[success] SetSheetHeaderFooter");
|
|
|
|
// SetSheetVisible
|
|
excel.SetSheetVisible(sheetName, True);
|
|
println("[success] SetSheetVisible");
|
|
|
|
// GetSheetVisible
|
|
visible := excel.GetSheetVisible(sheetName);
|
|
println("[success] GetSheetVisible = {}", visible);
|
|
|
|
// SetRowVisible
|
|
excel.SetRowVisible(sheetName, 2, false);
|
|
println("[success] SetRowVisible");
|
|
|
|
// GetRowVisble
|
|
[err, errmsg] := excel.GetRowVisble(sheetName, 2);
|
|
PrintInfo("GetRowVisble 2", err, errmsg);
|
|
[err, errmsg] := excel.GetRowVisble(sheetName, 3);
|
|
PrintInfo("GetRowVisble 3", err, errmsg);
|
|
|
|
// SetColVisible
|
|
excel.SetColVisible(sheetName, "A", false);
|
|
println("[success] SetRowVisible");
|
|
|
|
// GetColVisble
|
|
[err, errmsg] := excel.GetColVisble(sheetName, "A");
|
|
PrintInfo("GetColVisible", err, errmsg);
|
|
|
|
// SetPageMargins
|
|
margins := TOfficeObj('TMargins');
|
|
margins.Top := 0.5;
|
|
margins.Bottom := 0.6;
|
|
margins.Left := 0.7;
|
|
margins.Right := 0.8;
|
|
margins.Header := 0.9;
|
|
margins.Footer := 1.0;
|
|
excel.SetPageMargins(sheetName2, margins);
|
|
println("[success] SetPageMargins");
|
|
|
|
// GetPageMargins
|
|
margins := excel.GetPageMargins(sheetName2);
|
|
println("[success] GetPageMargins top = {}, bottom = {}, left = {}, right = {}, header = {}, footer = {}",
|
|
margins.Value('Top'), margins.Value('Bottom'), margins.Value('Left'), margins.Value('Right'),
|
|
margins.Value('Header'), margins.Value('Footer'));
|
|
|
|
// MergeCell
|
|
excel.SetCellStyle(sheetName2, "A4", "A4", styleid1);
|
|
excel.MergeCell(sheetName2, "A4", "C4");
|
|
excel.MergeCell(sheetName2, "A5", "D7");
|
|
println("[success] MergeCell");
|
|
|
|
// UnMergeCell
|
|
excel.UnMergeCell(sheetName2, "A4", "C4");
|
|
println("[success] UnMergeCell");
|
|
|
|
// SetSheetViewOptions
|
|
sheetView := TOfficeObj('TSheetView');
|
|
sheetView.ShowGridLines := false;
|
|
sheetView.ShowRowColHeaders := false;
|
|
sheetView.View := 'pageBreakPreview';
|
|
sheetView.ZoomScale := 60;
|
|
excel.SetSheetViewOptions(sheetName, 0, sheetView);
|
|
println("[success] SetSheetViewOptions");
|
|
|
|
// GetSheetViewOptions
|
|
view := excel.GetSheetViewOptions(sheetName, 0);
|
|
println("[success] GetSheetViewOptions ShowGridLines = {}, ShowRowColHeaders = {}, View = {}, ZoomScale = {}", view.ShowGridLines, view.ShowRowColHeaders, view.ZoomScale, view.View);
|
|
|
|
// SetPageLayout
|
|
pageLayout := TOfficeObj('TPageLayout');
|
|
pageLayout.FitToWidth := 10;
|
|
pageLayout.FitToHeight := 10;
|
|
pageLayout.FirstPageNumber := 5;
|
|
pageLayout.Orientation := "portrait";
|
|
pageLayout.BlackAndWhite := true;
|
|
pageLayout.PaperSize := 11;
|
|
pageLayout.PageOrder := "overThenDown";
|
|
pageLayout.CellError := "blank";
|
|
pageLayout.CellComments := "asDisplayed";
|
|
excel.SetPageLayout(sheetName2, pageLayout);
|
|
println("[success] SetPageLayout");
|
|
|
|
// GetPageLayout
|
|
pageLayout := excel.GetPageLayout(sheetName2);
|
|
println("[success] GetPageLayout FitToWidth = {}, PaperSize = {}", pageLayout.Value('FitToWidth'), pageLayout.Value('PaperSize'));
|
|
|
|
// SetDefaultSheet
|
|
excel.SetDefaultSheet(sheetName2);
|
|
println("[success] SetDefaultSheet");
|
|
|
|
// GetDefaultSheet
|
|
sheet := excel.GetDefaultSheet();
|
|
println("[success] GetDefaultSheet = {}", sheet);
|
|
|
|
// SetCellHyperLink
|
|
link := TOfficeObj('THyperLink');
|
|
link.LinkType := "location";
|
|
link.LinkUrl := sheetName $ "!A1";
|
|
excel.SetCellHyperLink(sheetName2, 'A1', link);
|
|
link := TOfficeObj('THyperLink');
|
|
link.LinkType := "external";
|
|
link.LinkUrl := "https://www.baidu.com";
|
|
link.Tooltip := "超链接悬浮提示";
|
|
excel.SetCellValue(sheetName2, 'A2', '超链接');
|
|
excel.SetCellHyperLink(sheetName2, 'A2', link);
|
|
println("[success] SetCellHyperLink");
|
|
|
|
// GetCellHyperLink
|
|
hyperlink := excel.GetCellHyperLink(sheetName2, 'A2');
|
|
println("[success] GetCellHyperLink LinkType = {}, LinkUrl = {}, Tooltip = {}", hyperlink.LinkType, hyperlink.LinkUrl, hyperlink.Tooltip);
|
|
|
|
// SetSheetBackground
|
|
ret := readfile(rwBinary(), "", "C:\\Users\\csh05\\Pictures\\Saved Pictures\\1.jpg", 0, 1024000, data);
|
|
if not ret then return echo "readfile error!";
|
|
picture := TOfficeObj('TPicture');
|
|
picture.Image := data;
|
|
excel.SetSheetBackground(sheetName, picture);
|
|
println("[success] SetSheetBackground");
|
|
|
|
// AddPicture
|
|
format := TOfficeObj('TPictureFormat');
|
|
format.BegColOff := 20000;
|
|
format.EndColOff := 20000;
|
|
excel.AddPicture(sheetName, 'A11', 'F33', picture, format);
|
|
excel.AddPicture(sheetName2, 'A8', 'D16', picture, format);
|
|
println("[success] AddPicture");
|
|
|
|
// DeletePicture
|
|
excel.DeletePicture(sheetName2, 'A1', 'D17');
|
|
println("[success] DeletePicture");
|
|
|
|
// TODO 可能有问题
|
|
// AddTable
|
|
table2 := array(("title1" :1, "title2": 2), ("title1": 3, "title2": 4));
|
|
excel.InsertTable(sheetName2, "A9", table2, true);
|
|
tablestyle := TOfficeObj('TTableStyle');
|
|
tablestyle.TableName := "测试表";
|
|
tablestyle.TableStyle := "TableStyleMedium2";
|
|
tablestyle.ShowFirstColumn := True;
|
|
tablestyle.ShowLastColumn := True;
|
|
tablestyle.ShowRowStripes := True;
|
|
tablestyle.ShowColumnStripes := True;
|
|
excel.AddTable(sheetName2, "A9", "B11", tablestyle, false);
|
|
println("[success] AddTable");
|
|
|
|
// InsertPageBreak
|
|
excel.InsertPageBreak(sheetName2, 10);
|
|
excel.InsertPageBreak(sheetName2, 15);
|
|
println("[success] InsertPageBreak");
|
|
|
|
// RemovePageBreak
|
|
excel.RemovePageBreak(sheetName2, 15);
|
|
println("[success] RemovePageBreak");
|
|
|
|
// AddShape
|
|
shape_format := TOfficeObj('TShapeFormat');
|
|
shape_format.BegColOff := 354252;
|
|
shape_format.EndColOff := 7653;
|
|
shape_format.BegRowOff := 55577;
|
|
shape_format.EndRowOff := 66675;
|
|
shape_type := "roundRect";
|
|
excel.AddShape(sheetName2, "A15", "C17", shape_type, shape_format);
|
|
println("[success] AddShape");
|
|
|
|
// SetCoreProps
|
|
core := TOfficeObj('TCoreProperty');
|
|
core.Title := "标题";
|
|
core.Subject := "主题";
|
|
core.Creator := "作者";
|
|
excel.SetCoreProps(core);
|
|
|
|
// GetCoreProps
|
|
core := excel.GetCoreProps();
|
|
println("[success] GetCoreProps Title = {}, subject = {}, Creator = {}", core.Title, core.Subject, core.Creator);
|
|
|
|
// SetAppProps
|
|
appProps := TOfficeObj('TAppProperty');
|
|
appProps.Application := "Microsoft TX";
|
|
appProps.DocSecurity := false;
|
|
appProps.ScaleCrop := "true";
|
|
appProps.Company := "TS";
|
|
appProps.LinksUpToDate := "true";
|
|
appProps.HyperlinksChanged := "true";
|
|
appProps.Version := "1.000";
|
|
appProps.Manager := "这是主管";
|
|
//appProps.HyperlinkBase := "这是超链接基础";
|
|
excel.SetAppProps(appProps);
|
|
println("[success] SetAppProps");
|
|
|
|
// GetAppProps
|
|
app_props := excel.GetAppProps();
|
|
println("[success] GetAppProps Manager = {}, Company = {}, Application = {}", app_props.Manager, app_props.Company, app_props.Application);
|
|
|
|
// CopySheet
|
|
excel.CopySheet(sheetName2, 'copy');
|
|
println("[success] CopySheet");
|
|
|
|
// ProtectSheet
|
|
protect := TOfficeObj('TProtect');
|
|
protect.EditObjects := true;
|
|
protect.EditScenarios := true;
|
|
protect.FormatCells := true;
|
|
protect.FormatColumns := true;
|
|
protect.FormatRows := true;
|
|
protect.InsertColumns := true;
|
|
protect.InsertRows := true;
|
|
protect.InsertHyperlinks := true;
|
|
protect.DeleteColumns := true;
|
|
protect.DeleteRows := true;
|
|
protect.Sort := true;
|
|
protect.AutoFilter := true;
|
|
protect.PivotTables := true;
|
|
protect.SelectLockedCells := true;
|
|
protect.SelectUnLockedCells := true;
|
|
excel.ProtectSheet(sheetName2, protect);
|
|
println("[success] ProtectSheet");
|
|
|
|
[err, errmsg] := excel.saveas("", "d:\\temp\\test.xlsx");
|
|
println("saveas : {}", err);
|
|
|
|
Function _test_background(excel);
|
|
Begin
|
|
f := 'D:\\temp\\a.xlsx';
|
|
[err, msg] := excel.OpenFile('', f);
|
|
if err then return
|
|
echo "Open Fail:", msg, '\n';
|
|
|
|
ret := readfile(rwBinary(), "", "C:\\Users\\csh05\\Pictures\\Saved Pictures\\1.png", 0, 102400, data);
|
|
if ret then pictrue := new TSImage(data);
|
|
else return echo "readfile error!";
|
|
|
|
excel.SetSheetBackground('Sheet1', pictrue);
|
|
|
|
[err, errmsg] := excel.SaveAs('', 'd:\\temp\\e.xlsx');
|
|
println('SaveAs->{}',err);
|
|
End
|
|
|
|
// ============================================================
|
|
Function PrintInfo(msg, err, errinfo);
|
|
Begin
|
|
if err then debugreturn println("{} : errorno = {}, errorinfo = {}!", msg, err, errinfo);
|
|
println("[success] {} = {}", msg, errinfo);
|
|
End
|
|
|