সেল

RichTextRun রিচ টেক্সটের বৈশিষ্ট্য সংজ্ঞায়িত করে।

type RichTextRun struct {
    Font *Font
    Text string
}

HyperlinkOpts এটি ঐচ্ছিক হাইপারলিংক বৈশিষ্ট্যগুলি সূচিত করতে ব্যবহৃত হয়, উদাহরণস্বরূপ ডিসপ্লে টেক্সট এবং স্ক্রিন টিপ।

type HyperlinkOpts struct {
    Display *string
    Tooltip *string
}

FormulaOpts এটি বিশেষ সূত্র প্রকারগুলি SetCellFormula ফাংশনে।

type FormulaOpts struct {
    Type *string // সূত্র ধরন
    Ref  *string // যৌথ সূত্র সন্দর্ভ
}

সেলের মান সেট করুন

func (f *File) SetCellValue(sheet, cell string, value interface{}) error

নির্ধারিত শীট নাম এবং সেল স্থানকে ভিত্তি করে সেলের মান সেট করুন। এই ফাংশনটি গোরুটিন-সুরক্ষিত। নির্দিষ্ট স্থানাঙ্কগুলি চার্টের প্রথম সারি নয়, এবং পাঠ্য সেটিং করার জন্য বহুবচনের ব্যবহার করতে হবে।

সমর্থিত ডেটা প্রকার
int
int8
int16
int32
int64
uint
uint8
uint16
uint32
uint64
float32
float64
string
[]byte
time.Duration
time.Time
bool
nil

দয়া করে মনে রাখবেন, এই ফাংশনটি time.Time প্রকারের একটি সেলের মান স্থানাঙ্ক m/d/yy h:mm সংখ্যা ফর্ম্যাট দ্বারা ডিফল্টভাবে সেট করে, এবং আপনি এই সেটিং পরিবর্তন করতে ব্যবহার করে SetCellStyle। যদি আপনি বিশেষ Excel তারিখ সেট করতে চান যা Go ভাষার time.Time প্রকার দ্বারা প্রতিষ্ঠিত করা যায় না, উদাহরণস্বরূপ 1900 এর জানুয়ারি 0, অথবা 1900 এর ফেব্রুয়ারি 29, সেলের মান সেট করুন ০ অথবা 60, এবং তারপর একটি তারিখ সংখ্যা ফর্ম্যাট ধারণ করা স্টাইল দিয়ে সেট করুন।

বুলিয়ান মান সেট করুন

func (f *File) SetCellBool(sheet, cell string, value bool) error

নির্ধারিত শীট নাম এবং সেল স্থানকে ভিত্তি করে বুলিয়ান সেলের মান সেট করুন।

ডিফল্ট স্ট্রিং মান সেট করুন

func (f *File) SetCellDefault(sheet, cell, value string) error

নির্ধারিত শীট নাম এবং সেল স্থানকে ভিত্তি করে স্ট্রিং সেলের মান সেট করুন, এবং অক্ষরগুলি বিশেষ অক্ষর পরীক্ষা বিষয় হবে না।

ইন্টিজার সেট করুন

func (f *File) SetCellInt(sheet, cell string, value int) error

নির্ধারিত শীট নাম এবং সেল স্থানকে ভিত্তি করে পূর্ণাংক সেলের মান সেট করুন।

ফ্লোট সেট করুন

func (f *File) SetCellFloat(sheet, cell string, value float64, precision, bitSize int) error

নির্ধারিত শীট নাম, সেল স্থান, ফ্লোট মান, দশমিকের ভাগের নির্দিষ্টতা, এবং ফ্লোটের প্রকার অনুসারে ফ্লোট সেলের মান সেট করুন।

স্ট্রিং মান সেট করুন

func (f *File) SetCellStr(sheet, cell, value string) error

নির্ধারিত শীট নাম এবং সেল স্থানকে ভিত্তি করে স্ট্রিং সেলের মান সেট করুন, অক্ষরগুলি বিশেষ অক্ষর বিচার হবে, এবং অতিরিক্ত দৈর্ঘ্যের স্ট্রিং প্রায় 32767 ছাড়িয়ে যাওয়া উচিত নয়, অতিরিক্ত অক্ষরগুলি অগ্রাহ্য হবে।

সেল স্টাইল সেট করুন

func (f *File) SetCellStyle(sheet, hCell, vCell string, styleID int) error

দেওয়া শিট নাম, সেল সংযোজন, এবং স্টাইল ইনডেক্সের ভিত্তিতে সেলের মান সেট করুন। এই ফাংশন থ্রেড-সেফ। স্টাইল ইনডেক্সটি NewStyle ফাংশনের মাধ্যমে প্রাপ্ত করা যেতে পারে। লক্ষ্য করুন যে সমান কো-অর্ডিনেট অন্তর্ভুক্ত diagonalDown এবং diagonalUp কৌগুলিক রং সংরক্ষণ করতে হবে। SetCellStyle কোনো স্ট্যাকিং বা মার্জ না করে সেলের বিদ্যমান স্টাইল ওভাররাইড করবে।

  • উদাহরণ 1: শিট নাম Sheet1 এর জন্য সেল D7 এর বর্ডার স্টাইল সেট করুন।
style, err := f.NewStyle(&excelize.Style{
    Border: []excelize.Border{
        {Type: "left", Color: "0000FF", Style: 3},
        {Type: "top", Color: "00FF00", Style: 4},
        {Type: "bottom", Color: "FFFF00", Style: 5},
        {Type: "right", Color: "FF0000", Style: 6},
        {Type: "diagonalDown", Color: "A020F0", Style: 8},
        {Type: "diagonalUp", Color: "A020F0", Style: 8},
    },
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

একটি সেলের বর্ডার স্টাইল সেট করুন

সেল D7 এর চারটি বর্ডারকে বিভিন্ন স্টাইল এবং রঙে সেট করা হয়, যা NewStyle ফাংশনে পাঠানো প্যারামিটারগুলির সাথে সম্পর্কিত। বিভিন্ন স্টাইল সেট করার জন্য, দয়া করে এই অধ্যায়ে নথিটি দেখুন।

  • উদাহরণ 2: শিট নাম Sheet1 এর জন্য সেল D7 এর গ্রেডিয়েন্ট স্টাইল সেট করুন।
style, err := f.NewStyle(&excelize.Style{
    Fill: excelize.Fill{Type: "gradient", Color: []string{"FFFFFF", "E0EBF5"}, Shading: 1},
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

সেলে গ্রেডিয়েন্ট স্টাইল সেট করুন

সেল D7 এর গ্রেডিয়েন্ট রং দিয়ে ভরা হয়, যা NewStyle ফাংশনে পাঠানো প্যারামিটারগুলির সাথে সম্পর্কিত। বিভিন্ন স্টাইল সেট করার জন্য, দয়া করে এই অধ্যায়ে নথিটি দেখুন।

  • উদাহরণ 3: শিট নাম Sheet1 এর জন্য সেল D7 এর সলিড রং ফিল সেট করুন।
style, err := f.NewStyle(&excelize.Style{
    Fill: excelize.Fill{Type: "pattern", Color: []string{"E0EBF5"}, Pattern: 1},
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

সেলে সলিড রং ফিল সেট করুন

সেল D7 এর সলিড রং দিয়ে ভরা হয়।

  • উদাহরণ 4: শিট নাম Sheet1 এর সেল D7 এর জন্য অক্ষরের স্পেসিং এবং ঘূর্ণন কোণ সেট করুন।
f.SetCellValue("Sheet1", "D7", "Style")
style, err := f.NewStyle(&excelize.Style{
    Alignment: &excelize.Alignment{
        Horizontal:      "center",
        Indent:          1,
        JustifyLastLine: true,
        ReadingOrder:    0,
        RelativeIndent:  1,
        ShrinkToFit:     true,
        TextRotation:    45,
        Vertical:        "",
        WrapText:        true,
    },
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

অক্ষরের স্পেসিং এবং ঘূর্ণন কোণ সেট করুন

  • উদাহরণ 5: এক্সেলে তারিখ এবং সময় বাস্তব সংখ্যায় প্রতিনিধিত্বিত করা হয়, উদাহরণস্বরূপ, 2017/7/4 12:00:00 PM প্রতীক হিসেবে সংখ্যা 42920.5 দিয়ে প্রতিনিধিত্বিত করা হতে পারে। ওয়ার্কশীটের নাম Sheet1 এ কোষ D7 এর জন্য সময় ফরম্যাট নির্ধারণ করুন:
f.SetCellValue("Sheet1", "D7", 42920.5)
f.SetColWidth("Sheet1", "D", "D", 13)
style, err := f.NewStyle(&excelize.Style{NumFmt: 22})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

কোষের জন্য সময় ফরম্যাট সেট করুন

কোষ D7 এ একটি সময় ফরম্যাট নির্ধারণ করা হয়েছে। মনে রাখবেন যেখানে কোষ পূর্ণরূপে প্রদর্শন করার জন্য পাটিতের প্রস্থ অত্যন্ত সংকীর্ণ হলে, সেটি হিসেবে #### প্রদর্শন করে। স্তান্নিকটের প্রদর্শনের জন্য কলাম প্রস্থ সাময়িকভাবে সমায়ন করার মাধ্যমে বা SetColWidth ফাংশন কল করে কলামের প্রস্থতা উচ্চতা নির্ধারণ করতে পারেন।

  • উদাহরণ 6: কোষ D7 এর জন্য ফন্ট, ফন্ট সাইজ, রঙ, এবং ইটালিক শৈলী নির্ধারণ করুন ওয়ার্কশীটের নাম Sheet1 এ:
f.SetCellValue("Sheet1", "D7", "এক্সেল")
style, err := f.NewStyle(&excelize.Style{
    Font: &excelize.Font{
        Bold:   true,
        Italic: true,
        Family: "টাইমস নিউ রোমান",
        Size:   36,
        Color:  "777777",
    },
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

কোষের জন্য ফন্ট, ফন্ট সাইজ, রঙ, এবং ইটালিক শৈলী নির্ধারণ করুন

  • উদাহরণ 7: ওয়ার্কশীটের নাম Sheet1 এ কোষ D7 এর জন্য লক এবং লুকাবদ্ধ করুন:
style, err := f.NewStyle(&excelize.Style{
    Protection: &excelize.Protection{
        Hidden: true,
        Locked: true,
    },
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)

কোষ লুকাবদ্ধ এবং লুকাবদ্ধ হতে তারিখন। "Review" ট্যাবে ক্লিক করে "Protect Sheet"।

func (f *File) SetCellHyperLink(sheet, cell, link, linkType string, opts ...HyperlinkOpts) error

প্রদত্ত ওয়ার্কশীট, কোষ স্থানীয়করণ, সংযোগ সস্তি, এবং সম্পদ প্রকার অনুসারে এক্সেলের জন্য হাইপারলিঙ্ক নির্ধারণ করুন। সম্পদ প্রকার দুটি ধরনঃ বাইরের সংযোগ ঠিকানা External এবং কার্যপত্রের ভিতর অবস্থান সংযোগ "Location"। প্রতি ওয়ার্কশীটের সর্বাধিক সংখ্যা 65530 দীর্ঘস্থায়ী সরানো। এই পদ্ধতি শুধুমাত্র কোষের জন্য হাইপারলিংক সেট করে যা কোষের মানকে প্রভাবিত করবে না। যদি আপনি কোষ মান নির্ধারণ করতে চান, তবে একইভাবে কোষের মান নির্ধারণ করতে SetCellStyle বা SetSheetRow প্রতিষ্ঠান ব্যবহার করুন।

  • উদাহরণ 1: ওয়ার্কশীটের নাম Sheet1 এ কোষ A3 এ বাহ্যিক সংযোগ যোগ করুন:
display, tooltip := "https://github.com/xuri/excelize", "গিটহাবে Excelize"
if err := f.SetCellHyperLink("Sheet1", "A3",
    "https://github.com/xuri/excelize", "External", excelize.HyperlinkOpts{
        Display: &display,
        Tooltip: &tooltip,
    }); err != nil {
    fmt.Println(err)
}
// কোষের জন্য ফন্ট এবং অন্ডারলাইন শৈলী নির্ধারণ করুন
style, err := f.NewStyle(&excelize.Style{
    Font: &excelize.Font{Color: "1265BE", Underline: "single"},
})
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "A3", "A3", style)
  • উদাহরণ 2: ওয়ার্কশীটের নাম Sheet1 এ কোষ A3 এ অবস্থান সংযোগ জোড়া যাবে:
err := f.SetCellHyperLink("Sheet1", "A3", "Sheet1!A40", "Location")
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error

দেয়া হলো পরিচিত ওয়ার্কশীট, সেল সংযোজন, এবং সমৃদ্ধ টেক্সট বিন্যাসের জন্য রিচ টেক্সট ফরম্যাট সেট করুন। 

উদাহরণসমূহ: উদাহরণ হিসেবে, শীটের নাম `শীট1` এ সেল `এ1` এর জন্য রিচ টেক্সট ফরম্যাট সেট করুন: 

![Set Rich Text Format](/storage/20231012/uog6n6jRKVmPjoBa.png)

```go
package main

import (
    "fmt"
    
    "github.com/xuri/excelize/v2"
)

func main() {
    f := excelize.NewFile()
    defer func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    if err := f.SetRowHeight("Sheet1", 1, 35); err != nil {
        fmt.Println(err)
        return
    }
    if err := f.SetColWidth("Sheet1", "A", "A", 44); err != nil {
        fmt.Println(err)
        return
    }
    if err := f.SetCellRichText("Sheet1", "A1", []excelize.RichTextRun{
        {
            Text: "বোল্ড",
            Font: &excelize.Font{
                Bold:   true,
                Color:  "2354E8",
                Family: "টাইমস নিউ রোমান",
            },
        },
        // ... (অন্যান্য সমৃদ্ধ টেক্সট রান)
    }); err != nil {
        fmt.Println(err)
        return
    }
    // ... (অন্যান্য সেল স্টাইল সেটিং এবং সংরক্ষণ)
}
func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)

প্রদত্ত ওয়ার্কশীট এবং সেল সংযোজনের উপর ভিত্তি করে সুনিশ্চিত সেলের রিচ টেক্সট ফরম্যাট পেতে।

func (f *File) GetCellValue(sheet, cell string, opts ...Options) (string, error)

প্রদত্ত ওয়ার্কশীট এবং সেল সংযোজনের ভিত্তিতে সেলের মান পেতে, এবং ফেরত দেওয়া মানটি কনভার্ট করে string টাইপে হবে। যদি সেল ফরম্যাটটি সেলের মানে প্রয়োগ করা যেতে পারে, তাহলে প্রয়োগিত মানটি ফেরত দেওয়া হবে; অন্যথায়, মূল মানটি ফেরত দেওয়া হবে। সমন্বিত এলাকার সব সেলের মানগুলি একই হবে। এই ফাংশনটি সমৈতিকতা-সহজন্য।

func (f *File) GetCellType(sheet, cell string) (CellType, error)

প্রদত্ত ওয়ার্কশীট এবং সেল সংযোজনের ভিত্তিতে নির্দিষ্ট সেলের ডেটা প্রকার পেতে ।

func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)

দুটি মাত্রায় অ্যারের ফর্মে রিটার্ন করে, এবং সেলের মানগুলি string টাইপে কনভার্ট করে, সমস্ত সেলের মান পেতে, যা নির্দিষ্ট ওয়ার্কশীটে উপস্থিত। যদি সেল ফরম্যাটটি সেলের মানে প্রয়োগ করা যেতে পারে, তাহলে প্রয়োগিত মানটি হবে; অন্যথায়, মূল মানটি হবে।

func (f *File) GetRows(sheet string, opts ...Options) ([][]string, error)

দুটি মাত্রায় অ্যারের ফর্মে রিটার্ন করে, এবং সেলের মানগুলি শ্রেণী ভিত্তিক সহ, সমস্ত সেলের মান পেতে। যদি সেল ফরম্যাটটি সেলের মানে প্রয়োগ করা যেতে পারে, তাহলে প্রয়োগিত মানটি হবে; অন্যথায়, মূল মানটি হবে।

func (f *File) GetCellHyperLink(sheet, cell string) (bool, string, error)

প্রদত্ত ওয়ার্কশীট এবং সেল স্থানাঙ্ক ভিত্তিক নির্দিষ্ট সেলের হাইপারলিঙ্ক পান। যদি সেলটি হাইপারলিঙ্ক সম্পন্ন থাকে, তবে এটি সঠিক মান এবং লিঙ্ক ঠিকানা ফেরত দেবে; অন্যথায়, এটি 'মিথ্যা' এবং ফাঁকা লিঙ্ক ঠিকানা ফেরত দেবে।

উদাহরণস্বরূপ, নাম 'Sheet1' এ অবস্থিত হাইপারলিঙ্কটি পেতে:

```go
link, target, err := f.GetCellHyperLink("Sheet1", "H6")
func (f *File) GetCellStyle(sheet, cell string) (int, error)

নির্দিষ্ট সেল ভিত্তিক শৈলী ইনডেক্স পান গুনত নির্দিষ্ট ওয়ার্কশীট এবং সেল স্থানাঙ্ক ভিত্তিক। এবং পেয়ে যাওয়া ইনডেক্সটি ব্যবহার করা যেতে পারে SetCellStyle ফাংশন কল করার সময় সেল শৈলী নির্ধারণ করার ক্ষেত্রে।

func (f *File) MergeCell(sheet, hCell, vCell string) error

নির্দিষ্ট ওয়ার্কশীট এবং সেল স্থানাঙ্ক অঞ্চলে সেলগুলি মার্জ করুন। মার্জ এলাকার উপরের বাম সুইচারের মানটি রক্ষিত থাকবে, এবং অন্যান্য সেলের মানগুলি উপেক্ষা করা হবে। উদাহরণস্বরূপ, 'Sheet1' নামে ওয়ার্কশীটে অঞ্চল 'D3 : E9' এ সেলগুলি মার্জ করুন:

err := f.MergeCell("Sheet1", "D3", "E9")

যদি প্রদত্ত সেল স্থানাঙ্ক অঞ্চলে বিদ্যমান মার্জড সেলগুলির ওপরিত্যাগ থাকে, তবে বিদ্যমান মার্জড সেলগুলি অপসারণ করা হবে।

func (f *File) UnmergeCell(sheet string, hCell, vCell string) error

প্রদত্ত ওয়ার্কশীট এবং সেল স্থানাঙ্ক অঞ্চলে সেলগুলি আনমার্জ করুন। উদাহরণস্বরূপ, 'Sheet1' নামে ওয়ার্কশীটে অঞ্চল 'D3 : E9' এ সেলগুলি আনমার্জ করুন:

err := f.UnmergeCell("Sheet1", "D3", "E9")

যদি প্রদত্ত সেল স্থানাঙ্ক অঞ্চলে একাধিক মার্জড সেলগুলি থাকে, তবে সমস্ত মার্জড সেলগুলি অনমার্জিত হবে।

প্রদত্ত ওয়ার্কশীটের সমস্ত মার্জড সেলের স্থানাঙ্ক অঞ্চল এবং মান পেতে।

func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)
func (m *MergeCell) GetCellValue() string

GetCellValue মার্জড সেলের মানটি ফেরত দেয়।

func (m *MergeCell) GetStartAxis() string

GetStartAxis মার্জড সেল এলাকার উপরের বাম সুইচারের স্থানাঙ্ক দেয়, উদাহরণস্বরূপ, C2

func (m *MergeCell) GetEndAxis() string

GetEndAxis মার্জড সেলের এলাকার নীচের ডান সুইচারের স্থানাঙ্ক দেয়, উদাহরণস্বরূপ, 'D4'।

func (f *File) AddComment(sheet string, comment Comment) error

প্রদত্ত ওয়ার্কশীট, সেল স্থানাঙ্ক এবং শৈলী প্যারামিটার (লেখক এবং পাঠ্য তথ্য) এ মন্তব্য যোগ করুন। লেখকের তথ্যর ২৫৫ অক্ষরের মান এবং দীর্ঘা সর্বোচ্চ ৩২৫১২ অক্ষরের পাঠ্য সর্বাধিক দৈর্ঘ্য। এই সীমার বাইরের অক্ষর উপেক্ষা করা হবে। উদাহরণস্বরূপ, সেল 'Sheet1! $ A $ 3' তে একটি মন্তব্য যোগ করুন:

Add a comment in an Excel document

err := f.AddComment("Sheet1", excelize.Comment{
    Cell:   "A3",
    Author: "Excelize",
    Paragraph: []excelize.RichTextRun{
        {Text: "Excelize: ", Font: &excelize.Font{Bold: true}},
        {Text: "This is a comment."},
    },
})
func (f *File) GetComments(sheet string) ([]Comment, error)

প্রদত্ত ওয়ার্কশীটে সমস্ত সেল মন্তব্য পেতে।

func (f *File) DeleteComment(sheet, cell string) error

প্রদত্ত ওয়ার্কশীট এবং সেল স্থানাঙ্কে মন্তব্য মুছে ফেলুন। উদাহরণস্বরূপ, 'Sheet1! $ A $ 30' সেলে মন্তব্য মুছুন:

err := f.DeleteComment("Sheet1", "A30")