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

35 篇文章 16 订阅
25 篇文章 3 订阅

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

背景介绍

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

操作演示

准备文档:

在这里插入图片描述

上传服务器操作转换:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8CnJHh2z-1673142220073)(F:%5CDownload%5CDevops%E5%B9%B3%E5%8F%B0%E4%BD%BF%E7%94%A8%5C%E5%9C%A8linux%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%B0%86Excel%E8%BD%AC%E6%8D%A2%E6%88%90%E6%96%87%E6%9C%AC.assets%5Cimage-20230107230036830.png)]

服务器操作记录代码:

[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,欢迎验证测试,提出意见。

您可以按照以下步骤在 Linux 环境中将 Logstash 安装成服务: 1. 下载并安装 Logstash。 2. 创建 Logstash 的 init 脚本,并将其保存到 /etc/init.d/ 目录下。 3. 将 init 脚本授权为可执行文件。 4. 将 Logstash 加入系统启动项。 下面是详细的步骤: 1. 下载并安装 Logstash。 可以从官方网站下载 Logstash 的安装包,并通过以下命令进行安装: ``` sudo rpm -ivh logstash-<version>.rpm ``` 2. 创建 Logstash 的 init 脚本,并将其保存到 /etc/init.d/ 目录下。 在 /etc/init.d/ 目录下创建一个名为 logstash 的文件,并将以下内容复制到文件中: ``` #!/bin/sh # # Logstash # # chkconfig: - 85 15 # description: Logstash start/stop/init.d script # # Source function library. . /etc/rc.d/init.d/functions # Get config. if [ -f /etc/sysconfig/logstash ]; then . /etc/sysconfig/logstash fi # Check that networking is up. if [ "$NETWORKING" = "no" ] then exit 0 fi RETVAL=0 start() { echo -n "Starting Logstash: " nohup /opt/logstash/bin/logstash -f /etc/logstash/conf.d/ 2>&1 > /tmp/logstash.log & RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success echo else echo_failure echo fi return $RETVAL } stop() { echo -n "Stopping Logstash: " killproc logstash RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success echo else echo_failure echo fi return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" RETVAL=1 ;; esac exit $RETVAL ``` 3. 将 init 脚本授权为可执行文件。 运行以下命令,将 init 脚本授权为可执行文件: ``` sudo chmod +x /etc/init.d/logstash ``` 4. 将 Logstash 加入系统启动项。 运行以下命令,将 Logstash 加入系统启动项: ``` sudo chkconfig --add logstash sudo chkconfig logstash on ``` 现在,Logstash 就已经被安装成服务了。可以使用以下命令启动、停止和重启 Logstash: ``` sudo service logstash start sudo service logstash stop sudo service logstash restart ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值