C# extract formatted text from Excel through OLEDB

♀尐吖头ヾ 提交于 2019-12-02 06:44:11

问题


I am reading data from a large excel file which has got formatted texts. I extract the data to DataTable object through oleDBConnection & GetOleDbSchemaTable. But the extracted data doesn't include any formatted information.

My requirement is, I need to extract only non-Strikethrough texts.

I don't have any issues while reading and everything is perfectly fine. But my extraction should be based on text format in excel which I am unable to find the solution.

Anything to be added in the connectionString which is as follows:

connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties=\"Excel 12.0 Xml;HDR=YES;Mode=Read;ReadOnly=True;\"";

Constraints:

  1. Using OleDBConnection - No Interop

  2. Reading to DataTable Object


回答1:


To the best of my knowledge, you cannot do this with just the ACE driver. That being said, if the constraints are ever lifted, this is the tool to use: http://closedxml.codeplex.com/




回答2:


You should switch your approach to use open XML. It's .NET, not COM

Info: http://support.microsoft.com/kb/840817

Download SDK: http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=5124




回答3:


You have to use "Open Xml" to get to format information if you do not want to use Interop. There is no other choice. There is Biff which I mention only for correctness, but your connection string clearly indicates XML, so Biff is out.

Once you open through "Open Xml" then you can "simulate" reading the range/table/cells like a DataTable.

With your constraints, Only #1 will give you formatting information.



来源:https://stackoverflow.com/questions/13282410/c-sharp-extract-formatted-text-from-excel-through-oledb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!