• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

在linux环境Excel转换成文本

武飞扬头像
运维打怪晋级之路
帮助1

在linux环境中将Excel转换成文本

背景介绍

在运维自动化过程中有这样的需求,有公司使用公共文档Excel维护信息,这些信息需要运维及时获取实现自动化任务,这些自动化任务以shell为例,shell不能直接操作Excel文档,需要将Excel转换成文本然后在解析和分析,我使用GO语言开发编译成二进制命令(之前的go编译文章可以参考 ),上传到服务器当命令使用。

操作演示

准备文档:

学新通

上传服务器操作转换:

学新通

服务器操作记录代码:

[root@localhost /]# ls
"    boot          dev    etc   jingge.xlsx  lib64  media  opt   root  sbin  sys  usr
bin  catalina.jar  empty  home  lib          lvm    mnt    proc  run   srv   tmp  var
[root@localhost /]# exceltxt jingge.xlsx 第一页
======开始处理========
第一页
./jingge.txt
======完成处理========
[root@localhost /]# ls
"    boot          dev    etc   jingge.txt   lib    lvm    mnt  proc  run   srv  tmp  var
bin  catalina.jar  empty  home  jingge.xlsx  lib64  media  opt  root  sbin  sys  usr
[root@localhost /]# more   jingge.txt
部门/公司       项目英文名称    主机IP  主机名称        所属应用        操作系统        告警团队简称    备注
公司    work_cem        10.152.116.11   cem-ck-01       问卷    linux   work
公司2   work_cem        10.152.116.12   cem-ck-02       问卷    linux   work
公司3   work_cem        10.152.116.13   cem-ck-03       问卷    linux   work
公司4   work_cem        10.152.161.171  search-01       问卷    linux   work
公司5   bdfb_law        10.152.161.172  search-02       法律信息        linux   work
公司6   bdfb_law        10.152.161.173  search-03       法律信息        linux   work
公司7   bdfb_law        10.152.161.174  search-04       法律信息        linux   work
公司8   bdfb_law        10.152.161.175  search-05       法律信息        linux   work

上GO代码

学新通

package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"

	"github.com/xuri/excelize/v2"
)

func main() {

	//var str = os.Args
	fmt.Println("======开始处理========")
	//fmt.Printf("%T\n", str)
	// var str0 = os.Args[0]
	var excel_file_name = os.Args[1]
	var excel_sheet_name = os.Args[2]
	fmt.Println(excel_sheet_name)
	file_name := strings.Split(excel_file_name, ".")[0]

	f, err := excelize.OpenFile(excel_file_name) ///excel_file_name  "b.xlsx"
	if err != nil {
		fmt.Println(err)
		return
	}
	defer func() {
		if err := f.Close(); err != nil {
			fmt.Println(err)
		}
	}()

	// 获取 Sheet 上所有单元格
	rows, err := f.GetRows(excel_sheet_name) ///excel_sheet_name
	if err != nil {
		fmt.Println(err)
		return
	}
	filePath := "./"   file_name   ".txt"
	fmt.Println(filePath)
	file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666)
	defer file.Close()
	if err != nil {
		fmt.Printf("open file err=%v\n", err)
		return
	}
	writer := bufio.NewWriter(file)
	for _, row := range rows {
		str := ""
		//fmt.Println(row)
		for _, colCell := range row {
			//fmt.Print(colCell, "\t")
			str = str   colCell   "\t"

		}
		//fmt.Println(str)
		//fmt.Println()
		s := str   "\r\n"
		writer.WriteString(s)

	}
	writer.Flush()
	fmt.Println("======完成处理========")
}

代码说明: 需要在GO二进制脚本命令上传入两个参数,第一个是Execl文件全称、第二个是sheet页名称

命令下载地址

exceltxt(将Excel转换成文本下载传送门)是Excel在Linux转换成文本的命令 下载地址是:https://download.csdn.net/download/qq_31555951/87371489,欢迎验证测试,提出意见。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbhcee
系列文章
更多 icon
同类精品
更多 icon
继续加载