怎么在VB中读取excel的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在VB中读取excel的数据相关的知识,希望对你有一定的参考价值。

sub test()
Set xlsApp=GetObject(,"excel.application")
if xlsApp Is Nothing then exit sub
msgbox xlsApp.ActiveCell.Value
end sub

用Set xlsApp=GetObject(,"excel.application")可以获得当前打开的excel程序
可以用xlsApp.workbooks(i)表示第i个打开的工作簿(也就是.xls文件)
再往下是xlsApp.workbooks(i).sheets(j)表示上述工作簿的第j个工作表
再往下是xlsApp.workbooks(i).sheets(j).cells(rowIndex, ColIndex)表示上述工作表rowIndex行,ColIndex列的单元格,或者用类似xlsApp.workbooks(i).sheets(j).range("A1:B10")取得上述工作表中的A1:B10区域
如果在装office的时候选上“VBA帮助文件”,可以进excel后按alt + F11进入“Microsoft Visual basic”编辑器,然后按F1查看帮助中关于Excel对象模型以及相关对象、属性、方法、事件的介绍
参考技术A 添加引用 Microsoft Excel ,可以自由操纵Excel
使用SQL语言,把Excel当作一个数据库来读取
参考技术B excel可以另存为TXT格式的,VB打开TXT格式的会把。
fn = FreeFile
Open Trim$(“路径") For Input As #fn
Do Until EOF(fn)
Input #fn, stra
loop
close #fn

vb6.0编程用到flexcell控件,怎么将单元格合并,或者分开。

要求合并两个单元格或者把一个分开成两个单元格。

参考技术A uses ComOBj;

var
workbook,sheet,excelObj,excel: OleVariant;
begin
excelObj := CreateOleObject('excel.sheet');
excel := excelObj.Application;
workbook := excel.workbooks.open(filePath);//打开某个文件
sheet := workbook.sheets[1];
Excel.ActiveWindow.WindowState := -4137;

Sheet.Range['A1', 'C3'].Select;//选择范围
Excel.Selection.HorizontalAlignment := xlCenter;//水平和垂直居中
Excel.Selection.VerticalAlignment := xlCenter;
Excel.Selection.MergeCells := True;//合并单元格

excel.visible := true;
end;

private void MergeRow2(Grid grid, string colNum, int startRow)

string oldStr = string.Empty;
int mergeStartRow = -1;
string[] cols = colNum.Split('|');
string oldNum = string.Empty;
int rowMak = startRow;
for (int i = 0; i < cols.Length; i++)

int col = int.Parse(cols[i]);
startRow = rowMak;
if (col != 1)

for (int row = startRow; row < grid.Rows; row++)

string newNum = grid.Cell(startRow, 1).Text.Trim();
string newStr = grid.Cell(startRow, col).Text.Trim();
if (oldStr == "")

oldStr = newStr;
oldNum = newNum;
startRow += 1;


else

if (newNum == oldNum && oldStr == newStr)

grid.Range(startRow, col, startRow - 1, col).Merge();

oldStr = newStr;
oldNum = newNum;
startRow += 1;



else

for (int j = 0; j < cols.Length; j++)


for (int row = 1; row < grid.Rows; row++)

string newStr = grid.Cell(row, col).Text.Trim();
if (oldStr != newStr)

// 先合并
if ((mergeStartRow > -1) && (row - 1 > mergeStartRow))

grid.Range(mergeStartRow, col, row - 1, col).Merge();

// 后赋值
oldStr = newStr;
mergeStartRow = row;






追问

什么意思啊?那么多?你这个是vba吧!!!

参考技术B 已私信发送,采纳吧~本回答被提问者采纳

以上是关于怎么在VB中读取excel的数据的主要内容,如果未能解决你的问题,请参考以下文章

vb读取excel数据的教程

VB中如何读取Excel中的数据

C#怎么读取Excel的数据

用VB如何高效读取EXCEL中所有的sheet名称

Java读取Excel中数据时怎么判断Excel中的最后一行

C#从Excel中读取数据为空了,该怎么解决啊?