十一,使用python进行excel的输入读取和写入操作

一,Excel文件的读取与输入

    (1)导入模块xlrd
    (2)打开工作簿
    (3)指定工作簿中的工作表
    (4)根据行列序号读取内容

#(1)导入模块xlrd
import xlrd #第三方库,其方法前一定要添加库名

#(2)打开工作簿Book
wb = xlrd.open_workbook('../Stu_pack/school.xls')



#(3)指定工作簿中的工作表
sheet = wb.sheet_by_index(0) #检索第一个工作表

#(4)根据行列序号读取内容
schools = [] #定义一个二维列表schools
for row in range(sheet.nrows): #以文件school的行遍历
    school = []  #定义一个一维列表
    for col in range(sheet.ncols):#以文件school的列遍历
        content = sheet.cell_value(row,col)#读取单元格内容并保存在变量Content里面
        school.append(content) #将从单元格读取的数据内容追加到一维列表school里面
    schools.append(school)#将读取的一行内容追加到二维列表schools里面
    
    
for school in schools:    #读取文件的内容
    print(school)

二、Excel文件的写入操作步骤:

    (1)导入模块:xlwt
    (2)构造工作簿:Workbook
    (3)为工作簿添加表单
    (4)根据行列号写入内容
    (5)保存文件

#实例二:将实例一读取的Excel文件内容,写到另一个Excel中,对学校所在省份进行简单判断,将上海市高校信息写入到新的文件里,文件名为“上海市高校信息表.xls”。第一行合并单元格显示标题。

#(1)导入模块:xlwt
import xlwt    #第三方库,其方法之前必须要添加其库名
import xlrd


#(2)构造工作簿
def read_excel(file_name):   #定义读取文件函数read_excel()
    wb = xlrd.open_workbook(file_name)
    sheet = wb.sheet_by_index(0) #检索第一个工作表
    schools = [] #定义一个二维列表schools
    for row in range(sheet.nrows): #以文件school的行遍历
        school = []  #定义一个一维列表
        for col in range(sheet.ncols):#以文件school的列遍历
            content = sheet.cell_value(row,col)#读取单元格内容并保存在变量Content里面
            school.append(content) #将从单元格读取的数据内容追加到一维列表school里面
        schools.append(school)#将读取的一行内容追加到二维列表schools里面
    return schools   #返回二维列表内容


#(3)写入文件内容
def write_excel(schools):   #定义写入文件函数
    wb = xlwt.Workbook(encoding = 'utf-8')#创建写入文件的对象
    sheet = wb.add_sheet('上海市高校信息表') #创建一个表单

    sheet.write_merge(0,0,0,6,'上海市高校信息表')  #写表标题并合并单元格(A1:G1)

    for col in range(7):     #写列表名称
        sheet.write(1,col,schools[0][col])#从第二行第一列开始写内容school[0][col]

    row_num = 2    #从第三行开始写数据
    for school in schools:       #一行 一行写数据内容
        if school[2] == '上海市':
            for col in range(7):
                sheet.write(row_num,col,school[col])
            row_num = row_num + 1  #将行数内容填写完自动增加一行
    wb.save('../R&Q_pic/上海市高校信息表.xls')#(4)保存文件内容

    

#(5)函数的调用
school_list = read_excel('../Stu_pack/school.xls')  #调用读取函数创建对象school_list,将素材里的文件Stu_pack里面的文件school.xls作为实参传递给形参
write_excel(school_list)    #调用写入函数,将读取的数据作为实参传递给形参写入文件“上海高校信息表”到指定的文件夹保存


school_list = read_excel('../R&Q_pic/上海市高校信息表.xls')
i=0
for school in school_list:
    if i<12:
        print(school)
        i+=1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Excel文件输入流转换为PNG文件输入流,需要进行以下步骤: 1. 使用Apache POI库读取Excel文件输入流,将其转换为Workbook对象。 2. 使用Apache Batik库将Workbook对象转换为SVG字符串。 3. 使用Apache Batik库将SVG字符串转换为PNG文件输出流。 以下是Java代码示例,可以实现将Excel文件输入流转换为PNG文件输入流: ```java import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.batik.dom.svg.SVGDOMImplementation; import org.apache.batik.svggen.SVGGeneratorContext; import org.apache.batik.svggen.SVGGraphics2D; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; public class ExcelToPNGConverter { public static InputStream convert(InputStream excelStream) throws Exception { // Read the Excel file input stream Workbook workbook = WorkbookFactory.create(excelStream); // Create a new SVG document String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI; Document document = SVGDOMImplementation.getDOMImplementation().createDocument(svgNS, "svg", null); Element svgRoot = document.getDocumentElement(); // Generate SVG from the Excel file SVGGeneratorContext ctx = SVGGeneratorContext.createDefault(document); SVGGraphics2D graphics = new SVGGraphics2D(ctx, false); graphics.setSVGCanvasSize(workbook.getSpreadsheetVersion().getLastRowIndex(), workbook.getSpreadsheetVersion().getLastColumnIndex()); workbook.getSheetAt(0).draw(graphics); graphics.getRoot(svgRoot); // Convert SVG to PNG ByteArrayOutputStream pngStream = new ByteArrayOutputStream(); org.apache.batik.transcoder.Transcoder transcoder = new org.apache.batik.transcoder.image.PNGTranscoder(); org.apache.batik.transcoder.TranscoderInput transcoderInput = new org.apache.batik.transcoder.TranscoderInput(document); org.apache.batik.transcoder.TranscoderOutput transcoderOutput = new org.apache.batik.transcoder.TranscoderOutput(pngStream); transcoder.transcode(transcoderInput, transcoderOutput); return new ByteArrayInputStream(pngStream.toByteArray()); } } ``` 使用方式: ```java InputStream excelStream = new FileInputStream("input.xlsx"); InputStream pngStream = ExcelToPNGConverter.convert(excelStream); ``` 注意:需要添加以下依赖库: - Apache POI - Apache Batik - XML Graphics Commons

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值