c语言生成excel文件简书,通过xlwings生成Excel文件

一个实例,下次运用时,可以照猫画虎。涉及了新建sheet,插入列表,设置行高,字号,csv文件读取,列表去重,表头插入,保存退出等。都有注释,一看就懂~

代码

import csv

import xlwings as xw

from itertools import islice

# 读取的文件名

A_server_file = 'A_server.csv'

B_server_file = 'B_server.csv'

# 输出的excel文件名

out_excel_file = 'A_B_Out.xlsx'

# 定义excel中的sheet

host_sheet = 'A和B的主机名对比'

ip_sheet = 'A和B的IP对比'

# 从A和B中提取的应用名

pre_app = 'XXX'

# 每个sheet定义2个list,xlwings在插入列时,是以list形式插入的

# 所有的主机名列表

a_host_list = []

b_host_list = []

# 所有的IP列表

a_ip_list = []

b_ip_list = []

# 读取之前脚本生成的csv文件,提取B文件的信息到列表。

with open(B_server_file, 'r', encoding='utf8', newline='') as csv_f:

# csv文件有表头的话,要去除第1行的表头

csv_r = csv.reader(csv_f)

for row in islice(csv_r, 1, None):

if pre_app == row[-1]:

# row的定义,按具体的数据记录定位

b_host_list.append(row[-2])

b_ip_list.append(row[-3])

print('read content to {} file.'.format(B_server_file))

# 读取之前脚本生成的csv文件,提取A文件的信息到列表。

with open(A_server_file, 'r', encoding='utf8', newline='') as csv_f:

# csv文件有表头的话,要去除第1行的表头

csv_r = csv.reader(csv_f)

for row in islice(csv_r, 1, None):

if pre_app == row[-1]:

# row的定义,按具体的数据记录定位

a_host_list.append(row[1])

a_ip_list.append(row[2])

print('read content to {} file.'.format(A_server_file))

# 列表去重

a_host_list = list(set(a_host_list))

b_host_list = list(set(b_host_list))

a_ip_list = list(set(a_ip_list))

b_ip_list = list(set(b_ip_list))

# 插入首行作列的表头

a_host_list.insert(0, 'a_host')

b_host_list.insert(0, 'b_host')

a_ip_list.insert(0, 'a_ip')

b_ip_list.insert(0, 'b_ip')

# 使用xlwings实例脂excel,并操作之

app = xw.App(visible=False, add_book=False)

wb = app.books.add()

# excel里加sheet

wb.sheets.add(host_sheet)

wb.sheets.add(ip_sheet)

# 定位一个具体的shell

sht_host_sheet = wb.sheets[host_sheet]

# 在每列插入数据

sht_host_sheet.range("A1").options(transpose=True).value = a_host_list

sht_host_sheet.range("B1").options(transpose=True).value = b_host_list

# 设置excel格式

# 表示A1开始,向右所有列,多选。不然得一个一个选择

sht_host_sheet.range('A1').expand('right').color = (255, 0, 0)

# 自动调整单元格大小。

# sht_host_sheet.autofit()

# 设置从A1向右的所有列宽

sht_host_sheet.range('A1').expand('right').column_width = 60

# 通过多的列设置所有表格的字体和行高

sht_host_sheet.range('B1').expand('down').font_size = 38

sht_host_sheet.range('B1').expand('down').row_height = 40

# 定位一个具体的shell

sht_ip_sheet = wb.sheets[ip_sheet]

# 在每列插入数据

sht_ip_sheet.range("A1").options(transpose=True).value = a_ip_list

sht_ip_sheet.range("B1").options(transpose=True).value = b_ip_list

# 设置excel格式

# 表示A1开始,向右所有列,多选。不然得一个一个选择

sht_ip_sheet.range('A1').expand('right').color = (255, 0, 0)

# 自动调整单元格大小。

# sht_ip_sheet.autofit()

# 设置从A1向右的所有列宽

sht_ip_sheet.range('A1').expand('right').column_width = 60

# 通过多的列设置所有表格的字体和行高

sht_ip_sheet.range('B1').expand('down').font_size = 38

sht_ip_sheet.range('B1').expand('down').row_height = 40

# 保存及退出,都是套路

wb.save(out_excel_file)

print(wb.sheets)

wb.close()

app.quit()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java提供了生成随机数的工具类Random,我们可以利用它来生成三位和四位的纯数字。以下是一个简单的示例代码: ```java import java.util.Random; public class RandomNumberGenerator { public static void main(String[] args) { Random random = new Random(); // 生成三位纯数字 int threeDigitNumber = random.nextInt(900) + 100; System.out.println("生成的三位纯数字为:" + threeDigitNumber); // 生成四位纯数字 int fourDigitNumber = random.nextInt(9000) + 1000; System.out.println("生成的四位纯数字为:" + fourDigitNumber); } } ``` 以上代码中,我们首先创建了一个Random对象,然后利用nextInt()方法生成一个范围在100-999之间的随机整数,即三位纯数字。同理,生成四位纯数字时范围为1000-9999。最后将生成的数字输出。 运行上述代码,我们可以得到类似以下的输出结果: ``` 生成的三位纯数字为:573 生成的四位纯数字为:3259 ``` 以上就是使用Java生成三位和四位纯数字的简单示例。希望能对你有所帮助! ### 回答2: 在Java中生成三位或四位纯数字的方法有很多种,下面分别介绍两种常见的方法。 1. 使用Math.random()方法生成三位或四位纯数字: ```java int num; if (Math.random() < 0.1) { num = (int) (Math.random() * 9000) + 1000; // 生成四位纯数字 } else { num = (int) (Math.random() * 900) + 100; // 生成三位纯数字 } System.out.println(num); ``` 这里通过Math.random()方法生成0到1之间的随机数,如果小于0.1则生成四位纯数字,否则生成三位纯数字。通过随机数生成的数字范围为100到999(三位纯数字)或1000到9999(四位纯数字)。 2. 使用Random类生成三位或四位纯数字: ```java Random random = new Random(); int num; if (random.nextBoolean()) { num = random.nextInt(9000) + 1000; // 生成四位纯数字 } else { num = random.nextInt(900) + 100; // 生成三位纯数字 } System.out.println(num); ``` 通过Random类的nextInt()方法生成指定范围内的随机整数,生成的数字范围为100到999(三位纯数字)或1000到9999(四位纯数字)。 以上两种方法都使用了随机数生成的原理,通过控制生成数字的范围实现生成三位或四位纯数字。 ### 回答3: 在Java中,我们可以使用Random类来生成随机数。对于三位和四位的纯数字,我们可以使用Random类的nextInt()方法和一些数学运算来实现。 首先,我们需要导入java.util.Random类: ```java import java.util.Random; ``` 接下来,我们可以创建Random对象,并生成一个三位的纯数字: ```java Random random = new Random(); int randomNum = random.nextInt(900) + 100; ``` 上述代码中,random.nextInt(900)会产生0到899之间的随机整数,再加上100就可以得到一个100到999之间的随机整数,即一个三位纯数字。 类似地,我们可以生成一个四位的纯数字: ```java Random random = new Random(); int randomNum = random.nextInt(9000) + 1000; ``` 同样地,random.nextInt(9000)会产生0到8999之间的随机整数,再加上1000就可以得到一个1000到9999之间的随机整数,即一个四位纯数字。 最后,我们可以使用System.out.println()方法将生成的随机数打印输出: ```java System.out.println("随机生成的三位纯数字:" + randomNum); ``` ```java System.out.println("随机生成的四位纯数字:" + randomNum); ``` 以上就是用Java随机生成三位和四位纯数字的方法。使用Random类的nextInt()方法和数学运算可以实现生成指定范围内的随机数,并通过System.out.println()方法将其输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值