html文件转换成excel6,golang+libreffice6.2实现word,excel,pptx转pdf,html

方法[^本地需安装libreoffice]

/**

*@tips libreoffice 转换指令:

* libreoffice6.2 invisible --convert-to pdf csDoc.doc --outdir /home/[转出目录]

*

* @function 实现文档类型转换为pdf或html

* @param command:libreofficed的命令(具体以版本为准);win:soffice; linux:libreoffice6.2

* fileSrcPath:转换文件的路径

* fileOutDir:转换后文件存储目录

* converterType:转换的类型pdf/html

* @return fileOutPath 转换成功生成的文件的路径 error 转换错误

*/

func FuncDocs2Pdf(command string, fileSrcPath string, fileOutDir string, converterType string) (fileOutPath string, error error) {

//校验fileSrcPath

srcFile, erByOpenSrcFile := os.Open(fileSrcPath)

if erByOpenSrcFile != nil && os.IsNotExist(erByOpenSrcFile) {

return "", erByOpenSrcFile

}

//如文件输出目录fileOutDir不存在则自动创建

outFileDir, erByOpenFileOutDir := os.Open(fileOutDir)

if erByOpenFileOutDir != nil && os.IsNotExist(erByOpenFileOutDir) {

erByCreateFileOutDir := os.MkdirAll(fileOutDir, os.ModePerm)

if erByCreateFileOutDir != nil {

logs.Error("File ouput dir create error.....", erByCreateFileOutDir.Error())

return "", erByCreateFileOutDir

}

}

//关闭流

defer func() {

_ = srcFile.Close()

_ = outFileDir.Close()

}()

//convert

cmd := exec.Command(command, "--invisible", "--convert-to", converterType,

fileSrcPath, "--outdir", fileOutDir)

byteByStat, errByCmdStart := cmd.Output()

//命令调用转换失败

if errByCmdStart != nil {

return "", errByCmdStart

}

//success

fileOutPath = fileOutDir + "/" + strings.Split(path.Base(fileSrcPath), ".")[0]

if converterType == "html" {

fileOutPath += ".html"

} else {

fileOutPath += ".pdf"

}

logs.Info("文件转换成功...", string(byteByStat))

return fileOutPath, nil

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于将txt文件换为xml和excel文件,您可以使用Go语言的一些库来实现。以下是一个简单的示例,使用`encoding/xml`和`github.com/tealeg/xlsx`库来完成换: 首先,您需要安装所需的库。在命令行中执行以下命令: ``` go get encoding/xml go get github.com/tealeg/xlsx ``` 接下来,您可以使用以下代码将txt文件换为xml文件: ```go package main import ( "encoding/xml" "fmt" "io/ioutil" "os" ) type Item struct { XMLName xml.Name `xml:"item"` Text string `xml:",chardata"` } type Items struct { XMLName xml.Name `xml:"items"` Items []Item `xml:"item"` } func main() { // 读取txt文件内容 txtData, err := ioutil.ReadFile("input.txt") if err != nil { fmt.Println("读取txt文件失败:", err) return } // 创建Items结构体并填充数据 items := Items{} items.Items = append(items.Items, Item{Text: string(txtData)}) // 将Items结构体换为xml格式 xmlData, err := xml.MarshalIndent(items, "", " ") if err != nil { fmt.Println("换为xml失败:", err) return } // 将xml数据写入文件 err = ioutil.WriteFile("output.xml", xmlData, 0644) if err != nil { fmt.Println("写入xml文件失败:", err) return } fmt.Println("txt文件已成功换为xml文件.") } ``` 将上述代码保存为`txt2xml.go`文件并执行`go run txt2xml.go`,即可将`input.txt`文件换为`output.xml`文件。 接下来,您可以使用以下代码将txt文件换为excel文件: ```go package main import ( "fmt" "github.com/tealeg/xlsx" "io/ioutil" ) func main() { // 读取txt文件内容 txtData, err := ioutil.ReadFile("input.txt") if err != nil { fmt.Println("读取txt文件失败:", err) return } // 创建新的xlsx文件 file := xlsx.NewFile() sheet, err := file.AddSheet("Sheet1") if err != nil { fmt.Println("创建xlsx文件失败:", err) return } // 在第一行第一列添加txt数据 cell := sheet.Cell(0, 0) cell.Value = string(txtData) // 保存xlsx文件 err = file.Save("output.xlsx") if err != nil { fmt.Println("保存xlsx文件失败:", err) return } fmt.Println("txt文件已成功换为excel文件.") } ``` 将上述代码保存为`txt2excel.go`文件并执行`go run txt2excel.go`,即可将`input.txt`文件换为`output.xlsx`文件。 请确保在运行代码之前,将实际的txt文件命名为`input.txt`并与代码文件放在同一目录下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值