c语言读写excel文件代码(c语言操作excel文件(读写))

Excel表格网 2022-11-21 07:14 编辑:admin 300阅读

1. c语言操作excel文件(读写)

可以使用CSV格式来做,使用excle 打开, 也就是逗号分隔符。

2. c语言从excel读文件

解决方案1:手动修复文件

打开excel,看到一个空白页面。

打开文件菜单,然后单击打开文件或在键盘上按Ctrl + O.

找到所需的文件,然后从“打开”按钮下拉菜单中选择文件打开并修复。

如果仍未打开,请单击“提取数据”并选择“是”。

解决方案2:使用HTML打开Excel文件(此方法仅在用户可以打开损坏的Excel文件时才有效)

打开受损文件,然后单击选择另存为。

选择将原文件存储到其他位置并用网页的格式保存。确保选中完整的电子表格。

用excell打开保存的文件,并以Excel格式再次保存。

如果运气足够好,文件损坏就会消失。

解决方案3:在其他位置移动/复制数据

此方法也要求用户首先打开损坏的文件。

右键单击任何工作表选项卡,然后单击选择所有工作表

再次右键单击工作表选项卡,然后单击选择移动或复制。

选择新的存储位置,并记住在移动或复制框中创建的最后剪切内容。

点击确定,就完成了。

解决方案4:XML方法

打开损坏的文件,右键单击选择另存为。

保存之前从可用列表中选择格式XML。

再次打开文件,然后右键单击另存为。

更改文件名并以原始格式再次保存。

解决方案5:尝试运气

关闭excel再重新打开文件,查看损坏的信息是否仍然存在。

如果依然不在,就尝试重新启动整个系统,然后再次打开该文件。

仍然不在,那就转到c:\ windows \ temp并删除所有内容,然后再次打开该文件。

尝试使用开放式办公室打开文件。该程序与所有Microsoft文档兼容,可以很好地解决文件损坏问题。

解决方案6:使用专业软件恢复

这种数据恢复软件市面上一抓一大把的,而且很多都是免费的。即使是付费的,也是有免费的空间,比如100M或者1G的,这种羊毛不薅白不薅。

3. c#操作excel文件读写

简单的方法是通过ODBC来实现: 具体实现

一、 包含Excel文件操作类头文件 #include "CSpreadSheet.h"

二、 新建Excel文件,并写入默认数据 // 新建Excel文件名及路径,TestSheet为内部表名 CSpreadSheet SS("c:\\Test.xls", "

4. c语言怎么读取excel文件

好像很难。Excel 一般都是手工操作,要用到 macro 就是高手了。用C++来扩展Excel,要写动态链接库,做接口。详细请参考资料。(英文的)pdf 格式。

5. C语言读取excel

找到电脑里所有的excel文件的操作步骤如下(以WINXP为例):

1、双击桌面我的电脑。进入我的电脑窗口后,选中我的电脑或确定的分区(如C区为系统分区,一般不保存个人数据,而DEFG区有可能有这样的文件,则分别选择各个分区或者选择我的电脑)。

2、点击工具栏上的“搜索”,在弹出的搜索助理窗格中的“全部或部分文件名”中输入EXCLS文件的扩展名“*.xls”(这个表示搜索所有扩展名为XLS的文件。如果记得要找的文件名中的部分文字,可输入如“2017*.xls”,即会搜索文件名以2017开头的所有XLS文件),再按“搜索”。如果有特定要求,还可通过“什么时候修改的?”、“大小是?”、“更多高级选项”作为搜索条件。

3、搜索的结果会实时显示在右侧文件列表中。再根据需求,进行或复制粘贴移动或双击打开等操作。

注意:搜索其它格式文件的方法与之大同小异。

6. c++读excel文件

  XLW(A Wrapper for the Excel API)是一个C++语言对Excel的开发者工具包(SDK)的一个封装,简化了C++程序操作Excel文档的方法,XLW4.0已经支持Excel 2007。  功能:使用XLW可以很方便的使用C++对Excel功能进行扩展,首先它提供了一个模板生成器xlwTemplateExtractor.exe,可以生成相应的工程文件,然后又具有一个接口生成器InterfaceGenerator.exe来自动生成相应的接口包装文件(xlwWrapper.cpp),从而大大减少了只使用Excel SDK来完成XLL开发所需的相关代码,降低了开发难度,避免一些错误的产生。  XLW示例:  C++头文件cppinterface.hC++源文件source.cpp

7. c语言读excel文件内容

1.工作簿的概念:

工作簿是指Excel环境中用来存储并处理工作数据的文件,也就是说Excel文档就是工作簿。它是Excel工作区中一个或多个工作表的集合,它的扩展名为.xls和.xlsx,其中.xls是Excel2003及其以下的版本的扩展名,而.xlsx是Excel从2007-2013的扩展名。

2.工作表的概念:

工作表是显示在工作簿窗口中的表格,是工作簿的基本组成单位。一个工作表可以由1048576行和16384列构成,行的编号从1到1048576,列的编号依次是A,B,C表示。行号显示在工作簿编辑区的左边,列标号显示在工作簿编辑区的上边。

3.文件的概念:

”文件“,就是在我们的电脑中,以实现某种功能或某种软件的部分功能为目的而定义的一个单位。它的范畴很广,种类也非常多,运行的方式也各有不同。一般来说,在电脑上能看到的都是文件。

4.Excel文件:

Excel文件是保存在电脑或其它设备上的 Excel工作簿,能够以相应版的Excel软件打开,当然低版本的Excel程序软件,只能打开对应版本或者更低版本的Excel文件,而最新版本的Excel软件,基本上可以打开所有版本的Excel文件。

5.Office Open XMl文件格式:

Office Open XML文件格式,可以简单地将其理解为XML格式的文件,它是从20世纪90年代出现,从Office 2000开始对其进行支持,但必须将Office文件先转化为xml文件,从Office2007版本开始采用了基于XML的文件格式,延续了这种传递,从而产生了这种新的文件格式,它们被称为Office Open XML格式,大大增强了文件和数据的管理能力,数据恢复能力,以及与业务系统的互操作能力。

可以更改Excel文件的文件名为.zip查看,看到是XML文件

8. 如何用c语言读取excel文件里的数据

VB操作EXCEL

全面控制 Excel

首先创建 Excel 对象,使用ComObj:

Dim ExcelID as Excel.Application

Set ExcelID as new Excel.Application

1) 显示当前窗口:

ExcelID.Visible := True;

2) 更改 Excel 标题栏:

ExcelID.Caption := \'应用程序调用 Microsoft Excel\';

3) 添加新工作簿:

ExcelID.WorkBooks.Add;

4) 打开已存在的工作簿:

ExcelID.WorkBooks.Open( \'C:\\Excel\\Demo.xls\' );

5) 设置第2个工作表为活动工作表:

ExcelID.WorkSheets[2].Activate;

或 ExcelID.WorkSheets[ \'Sheet2\' ].Activate;

6) 给单元格赋值:

ExcelID.Cells[1,4].Value := \'第一行第四列\';

7) 设置指定列的宽度(单位:字符个数),以第一列为例:

ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;

8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:

ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米

9) 在第8行之前插入分页符:

ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;

参考代码:ActiveSheet.HPageBreaks(1).Location = Range("A22")

10) 在第8列之前删除分页符:

ExcelID.ActiveSheet.Columns[4].PageBreak := 0;

11) 指定边框线宽度:

ExcelID.ActiveSheet.Range[ \'B3:D4\' ].Borders[2].Weight := 3;

1-左 2-右 3-顶 4-底 5-斜( \\ ) 6-斜( / )

12) 清除第一行第四列单元格公式:

ExcelID.ActiveSheet.Cells[1,4].ClearContents;

13) 设置第一行字体属性:

ExcelID.ActiveSheet.Rows[1].Font.Name := \'隶书\';

ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;

ExcelID.ActiveSheet.Rows[1].Font.Bold := True;

ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;

14) 进行页面设置:

a.页眉:

ExcelID.ActiveSheet.PageSetup.CenterHeader := \'报表演示\';

b.页脚:

ExcelID.ActiveSheet.PageSetup.CenterFooter := \'第&P页\';

c.页眉到顶端边距2cm:

ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;

d.页脚到底端边距3cm:

ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;

e.顶边距2cm:

ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;

f.底边距2cm:

ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;

g.左边距2cm:

ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;

h.右边距2cm:

ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;

i.页面水平居中:

ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;

j.页面垂直居中:

ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;

k.打印单元格网线:

ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;

15) 拷贝操作:

a.拷贝整个工作表:

ExcelID.ActiveSheet.Used.Range.Copy;

b.拷贝指定区域:

ExcelID.ActiveSheet.Range[ \'A1:E2\' ].Copy;

c.从A1位置开始粘贴:

ExcelID.ActiveSheet.Range.[ \'A1\' ].PasteSpecial;

d.从文件尾部开始粘贴:

ExcelID.ActiveSheet.Range.PasteSpecial;

16) 插入一行或一列:

a. ExcelID.ActiveSheet.Rows[2].Insert;

b. ExcelID.ActiveSheet.Columns[1].Insert;

17) 删除一行或一列:

a. ExcelID.ActiveSheet.Rows[2].Delete;

b. ExcelID.ActiveSheet.Columns[1].Delete;

18) 打印预览工作表:

ExcelID.ActiveSheet.PrintPreview;

19) 打印输出工作表:

ExcelID.ActiveSheet.PrintOut;

20) 工作表保存:

If not ExcelID.ActiveWorkBook.Saved then

ExcelID.ActiveSheet.PrintPreview

End if

21) 工作表另存为:

ExcelID.SaveAs( \'C:\\Excel\\Demo1.xls\' );

22) 放弃存盘:

ExcelID.ActiveWorkBook.Saved := True;

23) 关闭工作簿:

ExcelID.WorkBooks.Close;

24) 退出 Excel:

ExcelID.Quit;

25) 设置工作表密码:

ExcelID.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True

26) EXCEL的显示方式为最大化

ExcelID.Application.WindowState = xlMaximized

27) 工作薄显示方式为最大化

ExcelID.ActiveWindow.WindowState = xlMaximized

28) 设置打开默认工作薄数量

ExcelID.SheetsInNewWorkbook = 3

29) \'关闭时是否提示保存(true 保存;false 不保存)

ExcelID.DisplayAlerts = False

30) 设置拆分窗口,及固定行位置

ExcelID.ActiveWindow.SplitRow = 1

ExcelID.ActiveWindow.FreezePanes = True

31) 设置打印时固定打印内容

ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"

32) 设置打印标题

ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ""

33) 设置显示方式(分页方式显示)

ExcelID.ActiveWindow.View = xlPageBreakPreview

34) 设置显示比例

ExcelID.ActiveWindow.Zoom = 100

35) 让Excel 响应 DDE 请求

Ex.Application.IgnoreRemoteRequests = False

用VB操作EXCEL

Private Sub Command3_Click()

On Error GoTo err1

Dim i As Long

Dim j As Long

Dim objExl As Excel.Application \'声明对象变量

Me.MousePointer = 11 \'改变鼠标样式

Set objExl = New Excel.Application \'初始化对象变量

objExl.SheetsInNewWorkbook = 1 \'将新建的工作薄数量设为1

objExl.Workbooks.Add \'增加一个工作薄

objExl.Sheets(objExl.Sheets.Count).Name = "book1" \'修改工作薄名称

objExl.Sheets.Add , objExl.Sheets("book1") ‘增加第二个工作薄在第一个之后

objExl.Sheets(objExl.Sheets.Count).Name = "book2"

objExl.Sheets.Add , objExl.Sheets("book2") ‘增加第三个工作薄在第二个之后

objExl.Sheets(objExl.Sheets.Count).Name = "book3"

objExl.Sheets("book1").Select \'选中工作薄<book1>

For i = 1 To 50 \'循环写入数据

For j = 1 To 5

If i = 1 Then

objExl.Selection.NumberFormatLocal = "@" \'设置格式为文本

objExl.Cells(i, j) = " E " & i & j

Else

objExl.Cells(i, j) = i & j

End If

Next

Next

objExl.Rows("1:1").Select \'选中第一行

objExl.Selection.Font.Bold = True \'设为粗体

objExl.Selection.Font.Size = 24 \'设置字体大小

objExl.Cells.EntireColumn.AutoFit \'自动调整列宽

objExl.ActiveWindow.SplitRow = 1 \'拆分第一行

objExl.ActiveWindow. SplitColumn = 0 \'拆分列

objExl.ActiveWindow.FreezePanes = True \'固定拆分 objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" \'设置打印固定行

objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" \'打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _

Format(Now, "yyyy年mm月dd日 hh:MM:ss")

objExl.ActiveWindow.View = xlPageBreakPreview \'设置显示方式

objExl.ActiveWindow.Zoom = 100 \'设置显示大小

objExl.ActiveSheet.PageSetup.Orientation = xlLandscape ‘设置打印方向(横向)

\'给工作表加密码

objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _

Contents:=True, Scenarios:=True

objExl.Application.IgnoreRemoteRequests = False

objExl.Visible = True \'使EXCEL可见

objExl.Application.WindowState = xlMaximized \'EXCEL的显示方式为最大化

objExl.ActiveWindow.WindowState = xlMaximized \'工作薄显示方式为最大化

objExl.SheetsInNewWorkbook = 3 \'将默认新工作薄数量改回3个

Set objExl = Nothing \'清除对象

Me.MousePointer = 0 \'修改鼠标

Exit Sub

err1:

objExl.SheetsInNewWorkbook = 3

objExl.DisplayAlerts = False \'关闭时不提示保存

objExl.Quit \'关闭EXCEL

objExl.DisplayAlerts = True \'关闭时提示保存

Set objExl = Nothing

Me.MousePointer = 0

End Sub

9. c语言读入excel数据

步骤1:点击开始,打开Microsoft Excel 2010。

2

步骤2:打开之后,点击数据,其他来源,来自SQL Server。

3

步骤3:打开数据链接向导之后,输入服务器名称和登陆用户名和密码。点击下一步。

步骤4:点击下一步之后,报错,不能够正常链接数据库。

步骤5:打开SQL Server 数据库代理服务器,查看代理停止工作,将其启动。

步骤6:修改服务器名称为SQL Server所在的服务器的IP地址填写入服务器名称,登陆名称和密码全部为sa。

步骤7:进入,选择数据库和表。选择PUBS,点击下一步。

步骤8:点击下一步,保持链接文件,点击完成。

步骤9:点击导入数据

步骤10

连接属性,连接名称:172.16.0.31

pubs employee,连接文件:C:\Documents and Settings\lys\My

Documents\我的数据源\172.16.0.31 pubs employee.odc 连接字符串:

Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Data

Source=172.16.0.31;Use Procedure for Prepare=1;Auto

Translate=True;Packet Size=4096;Workstation ID=L10-1DA235E90;Use

Encryption for Data=False;Tag with column collation when

possible=False;Initial Catalog=pubs 命令文本:"pubs"."dbo"."employee"

步骤11:点击确定,输入密码Sa。

步骤12: 我们可以看到将SQL Server数据写入了EXCEL中。

查询EXCEL中数据库:

查询数据库中数据:

SELECT *

FROM employee

10. c++ excel读写

不知这样的效果如何?文件在附件,代码片段在下方:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

LPXLOPER Add(LPXLOPER x1,LPXLOPER x2)

{

if (x1->xltype==xltypeErr)

{

return x1;

}

if (x2->xltype==xltypeErr)

{

return x2;

}

static XLOPER xlRet={0};

double d1=0,d2=0;

if ((x1->xltype&xltypeNum)==xltypeNum)

{

d1=x1->val.num;

}else if ((x1->xltype&xltypeInt)==xltypeInt)

{

d1=x1->val.w;

}else if ((x1->xltype&xltypeSRef)==xltypeSRef)

{

if (GetNumFromCell(x1,d1)==false)

{

xlRet.val.err=xlerrValue;

xlRet.xltype=xltypeErr;

return (LPXLOPER)&xlRet;

}

}else

{

xlRet.val.err=xlerrValue;

xlRet.xltype=xltypeErr;

return (LPXLOPER)&xlRet;

}

if ((x2->xltype&xltypeNum)==xltypeNum)

{

d2=x2->val.num;

}else if ((x2->xltype&xltypeInt)==xltypeInt)

{

d2=x2->val.w;

}else if ((x2->xltype&xltypeSRef)==xltypeSRef)

{

if (GetNumFromCell(x2,d2)==false)

{

xlRet.val.err=xlerrValue;

xlRet.xltype=xltypeErr;

return (LPXLOPER)&xlRet;

}

}else

{

xlRet.val.err=xlerrValue;

xlRet.xltype=xltypeErr;

return (LPXLOPER)&xlRet;

}

xlRet.xltype=xltypeNum;

xlRet.val.num=d1+d2;

return (LPXLOPER)&xlRet;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

bool GetNumFromCell(LPXLOPER lpXloper,double & dValue)

{

XLOPER x_Tmp={0};

if ((lpXloper->xltype & xltypeSRef)==xltypeSRef)

{

if (xlretUncalced == Excel(xlCoerce, &x_Tmp, 2, lpXloper, TempInt(xltypeNum)))

{

return false;

}

if (x_Tmp.xltype==xltypeErr)

{

return false;

}

dValue=x_Tmp.val.num;

}else

{

return false;

}

return true;

}

很抱歉,回答者上传的附件已失效

11. c语言读取excel单元格内容

1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: 对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到 在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的3.方法三:将EXCEL文件转化成CSV(逗号分隔)的文件,用文件流读取(等价就是读取一个txt文本文件)。 先引用命名空间:using System.Text;和using System.IO;

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片