vb.net读取excel并写入dgv_Python 3.x:操作excel文件,简单入门

1.对于Excel后缀名为.xls的文件

首先明确Excel文件的概念。

创建了一个Excel文件,就是创建一个工作簿。

一个工作簿里可以包含多个工作表。

93613482c6f1bd11758dbd4bb1026a07.png

工作表里的单元格可以通过行号列号来确定。行号列号在程序上从0开始。

操作xls后缀的Excel文件,首先需要安装xlrd和xlwd模块。xlrd是读取Excel的模块,xlwd是创建写入。

pip install xlrd      #安装xlrdpip install xlwd

然后在程序中导入。

读取xls文件

import xlrdimport xlwtimport os'''读取Excel文件'''#获取Excel所在的目录fileDir = os.path.join(os.getcwd(),'files')#获取工作簿对象workbook = xlrd.open_workbook(os.path.join(fileDir,'data.xls'))#获取所有的工作表的名字,得到一个名字的列表sheets = workbook.sheet_names()#通过名字来获得对应的工作表,这里是获取第一张表sheet = workbook.sheet_by_name(sheets[0])#获取表中的数据,这里是一行一行读取,如有其它用途可存入相应的数据结构for row in range(sheet.nrows):      #sheet.nrows获取当前表有数据的行数    for col in range(sheet.ncols):  #sheet.ncols获取当前表有数据的列数        print(sheet.cell_value(row,col),end='')  #cell_value() 获取单元格的值,第一个参数为行,第二个为列    print()
ede29a1222de19a5b5497131ee875a83.png

读取xls文件

创建并写入xls文件

'''创建并写入Excel文件'''#创建工作簿对象workbook = xlwt.Workbook()#创建工作表对象sheet = workbook.add_sheet('工作表名字')#向单元格中写入内容for row in range(10):      #工作表有10行    for col in range(5):   #5列        sheet.write(row,col,row+col)  #write() 写入数据,第一个参数是行数,第二个是列数,第三个是值#保存创建的工作簿fileDir = os.path.join(os.getcwd(),'files')workbook.save(os.path.join(fileDir,'test.xls'))
d838782d0e3f77b18a8c8673d7775dbb.png

写入xls文件

91464d3e61fa748a0cbe787a406ea812.png

2.操作Excel文件后缀名为xlsx

需要安装openpyxl模块

pip install openpyxl

在程序中导入。

写入xlsx文件

import openpyxlimport os'''创建并写入Excel文件'''#创建工作簿对象workbook = openpyxl.Workbook()#获取创建工作簿之后默认生成的工作表对象sheet = workbook.active#创建工作表对象# sheet = workbook.create_sheet()  #创建工作表,第一个参数为表名,第二个参数为表的位置,0为最前,-1为倒数第二#向工作表中写入数据#一般excel表格都有一个表头,假设表头为titlestitles = ['姓名','年龄','性别','城市']#把城市写入工作表,在第一行写入需要4列#xlsx文件行和列从1开始,与xls文件不同for col in range(1,len(titles) + 1):    sheet.cell(1,col,titles[col - 1])   #cell()向表格写入内容,第一个参数为行,第二个为列,第三个为值#写入数据datas = [    ['张三',22,'男','北京'],    ['翠花',18,'女','上海'],    ['王五',12,'男','深圳']]for row in range(2,len(datas) + 2):    for col in range(1,len(datas[0]) + 1):        sheet.cell(row,col,datas[row - 2][col - 1])#保存工作簿fileDir = os.path.join(os.getcwd(),'files')workbook.save(os.path.join(fileDir,'testfile.xlsx'))   #save()保存。参数为文件路径+文件名
f358aea901da7e0c0b981e77c2b8e50e.png

写入xlsx文件

cfe2d8ae06af90ca772850337978b748.png

效果图

读取xlsx文件

#获取工作簿对象fileDir = os.path.join(os.getcwd(),'files')workbook = openpyxl.load_workbook(os.path.join(fileDir,'testfile.xlsx'))#获取工作表对象sheet = workbook.worksheets[0]   #获取第一个工作表#读取工作表for row in range(1,sheet.max_row + 1):  # .max_row获取工作表有内容的最大行数    for col in range(1,sheet.max_column + 1):   # .max_column获取工作表有内容的最大列数        print(sheet.cell(row,col).value,end='')    print()
9498881fd792ded4e7669f838a6b7977.png

以上可以解决基础的读写问题,可以根据工作的实际情况来添加逻辑代码,完成工作。Python学的好,下班晚不了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 DataGridView 导出为 Excel 表格,可以使用 Microsoft.Interop.Excel 库来创建 Excel 应用程序、工作簿和工作表,并将 DataGridView 数据写入工作表。要考虑单元格合并,可以使用 Range 对象来操作单元格。 下面是示例代码: ```vb.net Imports Microsoft.Office.Interop Private Sub ExportToExcel(ByVal dgv As DataGridView) ' 创建 Excel 应用程序 Dim excelApp As New Excel.Application() ' 创建工作簿 Dim workbook As Excel.Workbook = excelApp.Workbooks.Add() ' 获取第一个工作表 Dim worksheet As Excel.Worksheet = CType(workbook.Sheets(1), Excel.Worksheet) ' 写入列标题 For i As Integer = 0 To dgv.Columns.Count - 1 worksheet.Cells(1, i + 1) = dgv.Columns(i).HeaderText Next ' 写入单元格数据 For i As Integer = 0 To dgv.Rows.Count - 1 For j As Integer = 0 To dgv.Columns.Count - 1 Dim cell As Excel.Range = worksheet.Cells(i + 2, j + 1) cell.Value = dgv.Rows(i).Cells(j).Value ' 如果当前单元格与左边的单元格内容相同,则合并单元格 If j > 0 AndAlso dgv.Rows(i).Cells(j).Value = dgv.Rows(i).Cells(j - 1).Value Then Dim prevCell As Excel.Range = worksheet.Cells(i + 2, j) Dim range As Excel.Range = worksheet.Range(prevCell, cell) range.Merge() End If Next Next ' 保存 Excel 文件 Dim saveFileDialog As New SaveFileDialog() saveFileDialog.Filter = "Excel 文件|*.xlsx" saveFileDialog.Title = "保存为 Excel 文件" If saveFileDialog.ShowDialog() = DialogResult.OK Then workbook.SaveAs(saveFileDialog.FileName) MessageBox.Show("Excel 文件已保存。") End If ' 关闭 Excel 应用程序 excelApp.Quit() End Sub ``` 在上面的代码中,我们首先创建了一个 Excel 应用程序,然后创建了一个工作簿和一个工作表。我们使用循环写入 DataGridView 的列标题和单元格数据,如果当前单元格与左边的单元格内容相同,则使用 Range.Merge 方法合并单元格。最后,我们使用 SaveFileDialog 对话框来让用户选择文件保存位置,并将工作簿保存为 Excel 文件。 请注意,上面的代码需要引用 Microsoft.Interop.Excel 库。可以通过 NuGet 包管理器安装 Microsoft.Office.Interop.Excel 包。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值