مكتبة Open Source Go لإنشاء ملفات Excel XLSX
قراءة وكتابة وتحرير مستندات Microsoft Excel XLSX عبر Open Source Go API. أضف العديد من المخططات والصور والجداول داخل جداول البيانات الخاصة بك.
Unioffice هي مكتبة مفتوحة المصدر توفر لمطوري البرامج القدرة على إنشاء مستندات Office Excel XLSX وتعديلها ومعالجتها داخل تطبيقات Go الخاصة بهم. المكتبة مستقرة للغاية وتوفر أعلى درجة من الإنتاجية مع القليل من الجهد والتكلفة.
تدعم مكتبة unioffice مفتوحة المصدر بشكل كامل العديد من الميزات المهمة المتعلقة بإنشاء وتعديلات جداول بيانات Excel ، مثل إنشاء أوراق Excel جديدة من البداية ، وإنشاء خلايا بتنسيقات مختلفة للأرقام / التاريخ / الوقت ، وتنسيق خلية Excel ، ودعم التحقق من الخلية ، واسترداد قيم الخلية كما تم تنسيقه بواسطة Excel ، والتنسيق الشرطي ، ودمج الخلايا وإلغاء دمجها ، والتحقق من صحة البيانات بما في ذلك القوائم المنسدلة لمربع التحرير والسرد ، والصور المضمنة وغير ذلك الكثير.
الشروع في العمل مع unioffice
الطريقة الموصى بها لتوحيد مشروعك هي باستخدام Github. الرجاء استخدام الأمر التالي للتثبيت السلس.
قم بتثبيت unioffice عبر GitHub
go get github.com/unidoc/unioffice/
go build -i github.com/unidoc/unioffice/...
إنشاء Excel XLSX عبر Go API
يسمح unioffice للمكتبة مفتوحة المصدر لمبرمجي الكمبيوتر بإنشاء جدول بيانات Excel XLSX داخل تطبيقات Go الخاصة بهم. يمنحك القدرة على إضافة ورقة جديدة إلى مستندات Excel الحالية الخاصة بك وتعيين اسم للورقة وحفظ الملف في المسار الذي تختاره. كما يوفر دعمًا للعديد من الميزات المهمة مثل إضافة صفوف وأعمدة جديدة إلى ورقة ، وتحديد عدد الصفوف والأعمدة ، وتعيين القيمة الافتراضية للخلية ، والمزيد. يمكنك أيضًا فتح جدول البيانات الحالي وتعديله بسهولة.
قم بإنشاء ملف Excel بسيط عبر Go Library
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")
}
أضف مخططات متعددة إلى ملف Excel XLSX
قدمت مكتبة unioffice دعمًا لإضافة مخططات إلى جدول بيانات Excel ببضعة سطرين فقط من التعليمات البرمجية. يمكنك إنشاء مخططات استنادًا إلى البيانات المتاحة في ورقة العمل الخاصة بك وكذلك بدون توفر أي بيانات على الإطلاق. تمنحك المخططات القدرة على عرض البيانات بصريًا بتنسيقات مختلفة مثل الشريط أو العمود أو الدائرة أو الخط أو المنطقة أو الرادار ، إلخ. يمكن للمطورين الاختيار بسهولة من خيارات المخطط المتاحة ويمكنهم التحكم في قيمهم.
أدخل مخططات متعددة في ملف Excel عبر 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. كما يوفر خيارات لإدراج صورة وتعيين خصائصها مثل الحجم والموضع وما إلى ذلك بالإضافة إلى دعم الطباعة.
إدراج الصور في ملف Excel عبر 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")
}
تطبيق التنسيق الشرطي على خلايا جدول البيانات
يعد التنسيق الشرطي ميزة مفيدة تساعد مستخدمي Excel على تطبيق تنسيق على خلية أو نطاق من الخلايا بناءً على معايير معينة. توفر مكتبة unioffice وظائف تمكن مطوري البرامج من تطبيق التنسيق الشرطي على جدول البيانات الخاص بهم باستخدام بضعة أوامر Go. تضمنت المكتبة دعمًا للخلايا ذات التنسيق الشرطي والتصميم والتدرجات والأيقونات وشريط البيانات والمزيد في المستقبل.