Rumah  >  Artikel  >  pembangunan bahagian belakang  >  doc ke docx golang

doc ke docx golang

WBOY
WBOYasal
2023-05-10 10:23:361334semak imbas

Hari ini, saya ingin berkongsi dengan anda cara menggunakan Golang untuk menukar fail doc kepada fail docx.

Dengan kemas kini suite Microsoft Office, format fail dokumen telah dihapuskan secara beransur-ansur, dan kini format fail docx telah menjadi format dokumen yang lebih biasa. Jika anda perlu memproses dokumen dalam aplikasi anda sendiri, maka penukaran dokumen kepada docx adalah perlu.

Golang ialah bahasa pengaturcaraan berkuasa yang berfungsi dengan baik dalam mengendalikan tugas seperti penukaran dokumen. Seterusnya, saya akan memperkenalkan cara menggunakan Golang untuk menyelesaikan tugas menukar doc kepada docx.

Pertama, kita perlu menggunakan pustaka pihak ketiga "github.com/unidoc/unioffice" untuk menyelesaikan tugasan ini. Pustaka "unioffice" bergantung pada perpustakaan lain "github.com/antchfx/xmlquery", jadi kita perlu memperkenalkan kedua-dua perpustakaan ini ke dalam projek:

go get github.com/unidoc/unioffice
go get github.com/antchfx/xmlquery

Seterusnya, kita perlu membaca daripada fail dokumen Ambil kandungan teks dan tukarkannya menjadi teks berformat docx. Berikut ialah contoh kod mudah:

package main

import (
    "fmt"
    "github.com/antchfx/xmlquery"
    "github.com/unidoc/unioffice/document"
    "io"
    "os"
    "path/filepath"
)

func convertDocx(filePath string) error {
    f, err := os.Open(filePath)
    if err != nil {
        return err
    }
    defer f.Close()

    r, err := document.Open(f)
    if err != nil {
        return err
    }

    docxFilePath := filepath.Join(filepath.Dir(filePath), fmt.Sprintf("%s.docx", filepath.Base(filePath)))
    f2, err := os.Create(docxFilePath)
    if err != nil {
        return err
    }
    defer f2.Close()

    w, err := document.Create(f2, document.WithTemplate(r))
    if err != nil {
        return err
    }

    for _, para := range r.Paragraphs() {
        for _, run := range para.Runs() {
            if run.IsLineBreak() {
                w.AddLineBreak()
            } else if run.IsTab() {
                w.AddTab()
            } else if run.IsPicture() {
                io.Copy(w, r.GetPictureData(run.Picture()))
            } else {
                w.WriteString(run.Text())
            }
        }

        w.AddParagraph()
    }

    w.Close()
    r.Close()

    return nil
}

func main() {
    err := convertDocx("test.doc")
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("Conversion complete!")
}

Dalam kod di atas, kami mula-mula membuka fail dokumen dan membacanya ke dalam objek dokumen. Kami kemudian mencipta fail docx baharu dan menyerahkannya sebagai parameter "template" objek dokumen. Seterusnya, kami merentasi setiap perenggan dan setiap contoh yang sedang berjalan dalam fail doc, menukarnya ke dalam format docx yang sepadan dan menulisnya ke fail. Akhir sekali, kami menutup objek aliran fail dan mengembalikan sifar untuk menunjukkan bahawa pemprosesan telah selesai.

Dengan contoh kod di atas, kami boleh menggunakan Golang untuk menukar fail doc kepada fail docx. Perlu diingat bahawa dalam penggunaan sebenar, kita juga perlu mempertimbangkan pengendalian pengecualian dan keteguhan program.

Ringkasnya, artikel ini memperkenalkan cara menggunakan Golang untuk menukar fail doc kepada fail docx. Saya harap artikel ini dapat membantu anda dan memberi anda sedikit bantuan semasa menangani tugas penukaran dokumen.

Atas ialah kandungan terperinci doc ke docx golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:pembundaran bahagian golangArtikel seterusnya:pembundaran bahagian golang