c语言-如何用c读取从excel导出的文本文件中的text字段

问题描述

如何用c读取从excel导出的文本文件中的text字段

(初学c语言)我想编写一个实现材料管理功能的程序。因还不会从Excel中直接读取数据,因此选择了从Excel导出到txt文件中,然后再读取到程序当中。
但是问题来了。经常遇到的情形是,记录都有一个或者多个字段是字符型(数据库中的描述,非C语言的字符),从Excel中导出的文本中是以"text,text"处理的,即以英文状态下的双引号将这个字段放在了一起。下面是某条记录:

项目号 仓库名称 货位名称 Ident代码 材料代码 材料描述 税种 专业 单位 入库量 预留量 出库量 库存量 仓库标识 货位标识 操作用户 操作日期
12345 W1 FU 303205 C-2019 "ID Fan, Mat'l:CS,Std:API 673/API 560." 营业税 SITE ea 1 0 1 0 10245 8864 FANGHN 2012年09月26日

我的想法是先从文本中读取一条记录(fgets()),然后用sscanf读取该记录放到结果数组中,但是读不下去,因为sscanf()与scanf()一样,在读取字符串时,遇到空格等本次读取就结束了。

请问,该如何正确高效地读取该字段?

解决方案

你百度用c语言从excel导出数据,应该会有相关的工具的

解决方案二:

可以试一下gets()函数

时间: 2024-08-31 15:33:25

c语言-如何用c读取从excel导出的文本文件中的text字段的相关文章

c语言-编程以行读取txt文件,每行中以tab为分隔符为元素,C+、C#、python均可

问题描述 编程以行读取txt文件,每行中以tab为分隔符为元素,C+.C#.python均可 aaa bbb ccc ddd111 2015-01-01 00:00:00 1.000000002 FFF222 2015-01-02 00:00:01 1.000000003 EEEtxt文件的形式大概是这样,第一行为表头,接着是根据时间顺序排列的记录.元素形式有整型.双精度型.字符串和时间.我希望能够逐行读取记录,并且能够对指定列的元素进行不同记录条(行)间的大小比较(整型的元素)操作并将结果记录

opc-求问如何用vs2008读取simatic.net数据

问题描述 求问如何用vs2008读取simatic.net数据 使用vs2008中的com组件SIMATIC_OPCData来进行读取

C#实现把txt文本数据快速读取到excel中

  这篇文章主要介绍了C#实现把txt文本数据快速读取到excel中,本文直接给出示例代码,需要的朋友可以参考下 今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源.搜集一些c#操作excel的程序.步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll 在项目中引用. 编写代码如下: ? 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 2

通过Javascript读取本地Excel文件内容的代码示例

 这篇文章主要介绍了通过Javascript读取本地Excel文件内容的代码示例,但需要一定的条件才可以使用js操作本地文件,需要的朋友参考下吧 读取本地Excel文件内容的Javascript代码:    代码如下: <script type="text/javascript"> function read_excel(){       var filePath="D:abcd9.com.xls"; //要读取的xls     var sheet_id

通过Javascript读取本地Excel文件内容的代码示例_javascript技巧

读取本地Excel文件内容的Javascript代码: 复制代码 代码如下: <script type="text/javascript">function read_excel(){     var filePath="D:\abcd9.com.xls"; //要读取的xls    var sheet_id=2; //读取第2个表    var row_start=3; //从第3行开始读取    var tempStr='';    try{    

printf-(c语言)利用%ld读取double类型,程序可以运行,但是结果是很大的负数?

问题描述 (c语言)利用%ld读取double类型,程序可以运行,但是结果是很大的负数? #include #define TAX_1 17850 #define TAX_2 23900 #define TAX_3 29750 #define TAX_4 14875 #define TAXRATE_1 0.15 #define TAXRATE_2 0.28 int main(void) { double taxsalary,taxpay; int n; printf("Please enter

C语言如何用for循环构建2*2矩阵

问题描述 C语言如何用for循环构建2*2矩阵 2*2矩阵: 1 2 3 4 很简单的矩阵 不过不用scanf输入 直接用for循环输出 我想的方法是定义一个变量x=1,然后在for循环里面,每一次x++存入数组 代码: #include<stdio.h> int main() { int a[2][2]; int i,j,x=1; for(i=0;i<2;i++) for(j=0;j<2;j++) { a[i][j]=x; x++; } printf("%d "

C++语言如何用数组实现一个二叉树?

问题描述 C++语言如何用数组实现一个二叉树? 提示,二叉树的第n层可以用数组的第2^(n-1)~2^n-1表示.定义一个二叉树,并且实现对它的遍历. 解决方案 struct node { int l,r; }; struct node tree[100]; int path[100]; int ans; void init() { int i; ans = 0; for(i = 0 ; i < 100 ; i ++ ) tree[i].l = tree[i].r = -1,path[i] =

java语言如何用数组解这道题? 只需大神指点一下关键要点……

问题描述 java语言如何用数组解这道题? 只需大神指点一下关键要点-- java 修改标签 [问题描述] 用一维数组存储学号和成绩,然后,按成绩排序输出. [输入形式] 输入第一行包括一个整数N(1<=N<=100),代表学生的个数. 接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩. [输出形式] 按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来. 如果学生的成绩相同,则按照学号的大小进行从小到大排序. [样例输入] 3 1 90 2 87 3 92 [样例输出