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;
- 相关评论
- 我要评论
-