读一个&使用C#更新其他Excel [英] Reading one & Update some other Excel with c#

查看:72
本文介绍了读一个&使用C#更新其他Excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个小的winform实用程序,以读取一个excel&更新其他excel.

I am developing a small winform utility to read one excel & update other excel.

我正在尝试使用OLEDB读取源excel文件(具有几个隐藏的列和行).我能够做到这一点并在Datatable中获得输出,但是下面面临一些挑战:

I am trying to read source excel file (which has several hidden columns & rows) using OLEDB. I am able to do it and get output in Datatable but facing few challenges below:

  1. Sheet的列包含数字,日期和字符串.读取OLEDB之后,所有数字都将转换为日期,反之亦然.我不希望这种情况发生.我已经阅读了几种解决方案,例如在连接字符串中将IMEX设置为1,但是没有任何效果.我该如何解决?
  2. 我只希望返回活动区域.目前,我看到了很多空白列/行.我必须手动处理.
  3. 我尝试根据列值之一过滤excel输出,但是没有用.
  4. 有什么方法可以丢弃隐藏的列吗?
  5. 加载数据表后,我看到列显示为F1,F2 ..等.是的,源excel的列从第4行开始.如何在数据表中保留这些名称?

一旦我阅读了excel的源代码,就必须运行一些逻辑并逐行甚至逐列更新其他excel.我还必须保留格式.什么是最好的更新其他Excel?

Once I read source excel, I have to run some logic and update other excel row by row or even column by column. I have to retain formatting as well. What would be best to update other excel?

推荐答案

  1. 您要使用的是schema.ini文件,这是一个示例:


[ABC_20171128.csv]
Format = Delimited(|)
CharacterSet=ANSI
ColNameHeader=True
DateTimeFormat=dd MM yyyy hh:nn:ss

Col1 = Date DateTime
Col2 = AccountID Text
Col3 = SubAccount Text
Col4 = MarketCode Text
Col5 = SecurityCode Text
Col6 = Units Single

将schema.ini文件放在与您正在读取的文件相同的目录中.

Put the schema.ini file in the same directory as the file you're reading.

更多信息:使用Schema.ini文件在CSV文件中缺少日期列

  1. 是手动处理还是不使用OleDB使用Interop.

  1. Yes manually handle it or dont use OleDB use Interop.

MCVE ,其中有一个新问题.

MCVE with a new question.

您需要互操作来找出隐藏的列.另外,您会知道哪些隐藏起来可以丢弃.

You'll need interop to work out which columns are hidden. Alternatively you will know which ones are hidden to discard.

Schema.ini应该可以解决列标题.

The Schema.ini should do the trick for column headers.

这篇关于读一个&使用C#更新其他Excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆