برای ایجاد فایلهای اکسل XLSX، «Go Library» منبع باز
خواندن، نوشتن، ویرایش اسناد Microsoft Excel XLSX از طریق Open Source Go API. چندین نمودار، تصویر و جداول را در صفحات گسترده خود اضافه کنید.
Unioffice یک کتابخانه منبع باز خالص است که به توسعه دهندگان نرم افزار این قابلیت را می دهد که اسناد Office Excel XLSX را در داخل برنامه های Go خود تولید، اصلاح و دستکاری کنند. این کتابخانه بسیار پایدار است و بالاترین درجه بهره وری را با تلاش و هزینه بسیار کم ارائه می دهد.
کتابخانه یونی آفیس منبع باز به طور کامل از چندین ویژگی مهم مرتبط با ایجاد صفحه گسترده اکسل و تغییرات آن پشتیبانی می کند، مانند ایجاد برگه های جدید اکسل از ابتدا، ایجاد سلول ها با فرمت های مختلف شماره/تاریخ/زمان، قالب بندی سلول اکسل، پشتیبانی از اعتبارسنجی سلول، بازیابی مقادیر سلول همانطور که توسط اکسل فرمت شده است، قالب بندی شرطی، ادغام و ادغام سلول ها، اعتبارسنجی داده ها از جمله کشویی جعبه ترکیبی، تصاویر جاسازی شده و موارد دیگر.
شروع کار با یونی آفیس
راه پیشنهادی برای unioffice در پروژه شما استفاده از Github است. لطفا از دستور زیر برای نصب راحت استفاده کنید.
unioffice را از طریق GitHub نصب کنید
go get github.com/unidoc/unioffice/
go build -i github.com/unidoc/unioffice/...
ایجاد اکسل XLSX از طریق Go API
Unioffice کتابخانه منبع باز به برنامه نویسان کامپیوتر اجازه می دهد تا یک صفحه گسترده Excel XLSX را در داخل برنامه های Go خود ایجاد کنند. این به شما این امکان را می دهد که یک برگه جدید به اسناد اکسل موجود خود اضافه کنید و یک نام به یک برگه اختصاص دهید و فایل را در مسیر دلخواه خود ذخیره کنید. همچنین از چندین ویژگی مهم مانند افزودن سطرها و ستونهای جدید به یک صفحه، تعیین تعداد سطرها و ستونها، تنظیم مقدار پیشفرض یک سلول و غیره پشتیبانی میکند. همچنین می توانید صفحه گسترده موجود را به راحتی باز کرده و تغییر دهید.
ایجاد فایل اکسل ساده از طریق کتابخانه Go
func main() {
ss := spreadsheet.New()
defer ss.Close()
// add a single sheet
sheet := ss.AddSheet()
// rows
for r := 0; r < 5; r++ {
row := sheet.AddRow()
// and cells
for c := 0; c < 5; c++ {
cell := row.AddCell()
cell.SetString(fmt.Sprintf("row %d cell %d", r, c))
}
}
if err := ss.Validate(); err != nil {
log.Fatalf("error validating sheet: %s", err)
}
ss.SaveToFile("simple.xlsx")
}
نمودارهای متعدد را به یک فایل اکسل XLSX اضافه کنید
کتابخانه unioffice از اضافه کردن نمودارها به صفحه گسترده اکسل تنها با چند خط کد پشتیبانی می کند. می توانید نمودارهایی را بر اساس داده های موجود در کاربرگ خود و همچنین بدون در دسترس بودن هیچ داده ای ایجاد کنید. نمودارها به شما این امکان را می دهند که داده ها را به صورت بصری در قالب های مختلف مانند نوار، ستون، پای، خط، ناحیه یا رادار و غیره نمایش دهید. توسعه دهندگان به راحتی می توانند از گزینه های نمودار موجود انتخاب کنند و می توانند مقادیر آنها را کنترل کنند.
از طریق Go API نمودارهای متعدد را به فایل اکسل وارد کنید
func main() {
ss := spreadsheet.New()
defer ss.Close()
sheet := ss.AddSheet()
// Create all of our data
row := sheet.AddRow()
row.AddCell().SetString("Item")
row.AddCell().SetString("Price")
row.AddCell().SetString("# Sold")
row.AddCell().SetString("Total")
for r := 0; r < 5; r++ {
row := sheet.AddRow()
row.AddCell().SetString(fmt.Sprintf("Product %d", r+1))
row.AddCell().SetNumber(1.23 * float64(r+1))
row.AddCell().SetNumber(float64(r%3 + 1))
row.AddCell().SetFormulaRaw(fmt.Sprintf("C%d*B%d", r+2, r+2))
}
// Charts need to reside in a drawing
dwng := ss.AddDrawing()
chrt1, anc1 := dwng.AddChart(spreadsheet.AnchorTypeTwoCell)
chrt2, anc2 := dwng.AddChart(spreadsheet.AnchorTypeTwoCell)
addBarChart(chrt1)
addLineChart(chrt2)
anc1.SetWidth(9)
anc1.MoveTo(5, 1)
anc2.MoveTo(1, 23)
// and finally add the chart to the sheet
sheet.SetDrawing(dwng)
if err := ss.Validate(); err != nil {
log.Fatalf("error validating sheet: %s", err)
}
ss.SaveToFile("multiple-chart.xlsx")
}
func addBarChart(chrt chart.Chart) {
chrt.AddTitle().SetText("Bar Chart")
lc := chrt.AddBarChart()
priceSeries := lc.AddSeries()
priceSeries.SetText("Price")
// Set a category axis reference on the first series to pull the product names
priceSeries.CategoryAxis().SetLabelReference(`'Sheet 1'!A2:A6`)
priceSeries.Values().SetReference(`'Sheet 1'!B2:B6`)
soldSeries := lc.AddSeries()
soldSeries.SetText("Sold")
soldSeries.Values().SetReference(`'Sheet 1'!C2:C6`)
totalSeries := lc.AddSeries()
totalSeries.SetText("Total")
totalSeries.Values().SetReference(`'Sheet 1'!D2:D6`)
// the line chart accepts up to two axes
ca := chrt.AddCategoryAxis()
va := chrt.AddValueAxis()
lc.AddAxis(ca)
lc.AddAxis(va)
ca.SetCrosses(va)
va.SetCrosses(ca)
}
درج تصاویر در صفحات گسترده XLSX
کتابخانه unioffice به طور کامل از گنجاندن تصاویر در صفحات گسترده XLSX تنها با چند خط کد Go پشتیبانی می کند. این برنامه از اصلاح تصاویر و همچنین حذف تصاویر موجود در یک کاربرگ XLSX پشتیبانی می کند. همچنین گزینه هایی برای درج یک عکس و تنظیم ویژگی های آن مانند اندازه، موقعیت و غیره و همچنین پشتیبانی از چاپ ارائه می دهد.
از طریق Go API تصاویر را در فایل اکسل قرار دهید
func main() {
ss := spreadsheet.New()
defer ss.Close()
// add a single sheet
sheet := ss.AddSheet()
img, err := common.ImageFromFile("gophercolor.png")
if err != nil {
log.Fatalf("unable to create image: %s", err)
}
iref, err := ss.AddImage(img)
if err != nil {
log.Fatalf("unable to add image to workbook: %s", err)
}
dwng := ss.AddDrawing()
sheet.SetDrawing(dwng)
for i := float64(0); i < 360; i += 30 {
anc := dwng.AddImage(iref, spreadsheet.AnchorTypeAbsolute)
ang := i * math.Pi / 180
x := 2 + 2*math.Cos(ang)
y := 2 + +2*math.Sin(ang)
anc.SetColOffset(measurement.Distance(x) * measurement.Inch)
anc.SetRowOffset(measurement.Distance(y) * measurement.Inch)
// set the image to 1x1 inches
var w measurement.Distance = 1 * measurement.Inch
anc.SetWidth(w)
anc.SetHeight(iref.RelativeHeight(w))
}
if err := ss.Validate(); err != nil {
log.Fatalf("error validating sheet: %s", err)
}
ss.SaveToFile("image.xlsx")
}
قالب بندی شرطی را در سلول های صفحه گسترده اعمال کنید
قالب بندی شرطی یک ویژگی مفید است که به کاربران اکسل کمک می کند تا بر اساس معیارهای خاصی قالبی را در یک سلول یا محدوده ای از سلول ها اعمال کنند. کتابخانه unioffice عملکردی را ارائه کرده است که توسعه دهندگان نرم افزار را قادر می سازد تا قالب بندی شرطی را در صفحه گسترده خود تنها با چند دستور Go اعمال کنند. این کتابخانه شامل پشتیبانی از قالببندی شرطی سلولها، استایل، شیبها، نمادها، نوار داده و موارد دیگر است.