- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Access Ms Access
数据库通过 C#
.我能够阅读所有字段。我遇到的问题是,在阅读时 .txt
和 .doc
存储在 OLE Object
中的文件表的字段,在实际文本之前和之后也读取了许多额外的垃圾字符,例如-ÿÿÿÿ‡€ ÿÿÿÿÿÿÿÿˆ ÿÿÿÿÿÿÿÿ€ ˆˆˆˆˆˆˆˆ€ ÿÿÿÿÿÿÿÿþ
.
i 8 @ñÿ 8 N o r m a l CJ _H aJ mH sH tH < A@òÿ¡ <
D e f a u l t P a r a g r a p h F o n t … ÿÿÿÿ ( f p ³ ú ÿ A Ä M • À ' n î 0 q Œ Ï
我的 C# 代码就像-
`
/*Read from the query and write in a temporary file*/
var oleBytes = (Byte[])Cmd.ExecuteScalar();
MemoryStream ms = new MemoryStream();
ms.Write(oleBytes, 0, oleBytes.Length - 0);
var file = Path.GetTempFileName();
using (var fileStream = File.OpenWrite(file))
{
var buffer = ms.GetBuffer();
fileStream.Write(buffer, 0, (int)ms.Length);
}
Microsoft.Office.Interop.Word.ApplicationClass wordObject = new ApplicationClass();
object fpath = file; //this is the path
object nullobject = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document docs = wordObject.Documents.Open
(ref fpath, ref nullobject, ref nullobject, ref nullobject,
ref nullobject, ref nullobject, ref nullobject, ref nullobject,
ref nullobject, ref nullobject, ref nullobject, ref nullobject,
ref nullobject, ref nullobject, ref nullobject, ref nullobject);
docs.ActiveWindow.Selection.WholeStory();
docs.ActiveWindow.Selection.Copy();
IDataObject iData = Clipboard.GetDataObject();
if (iData != null)
data = iData.GetData(DataFormats.Text).ToString();
OLE Object
存储图像以外的文件的字段?
最佳答案
我找到了 Word 文档( .doc
文件)的解决方案。 Ms Access 中的 OLE 对象存储在实际数据之前包含一些标题信息,因此简单地将字段内容提取为字节数组并将其保存到磁盘是行不通的。任何 OLE 对象文件都有一些标准签名。对于word文档,OLEheaderLength is 85 bytes
.所以我从字节数组的两端剥离 85 个字节,例如 -
Con.Open();
string _query="select licenseDoc from Products where ID=56";
//Column licenseDoc contains word and text douments as OLE Objects
OleDbCommand Cmd = new OleDbCommand(_query, Con);
const int offset =85;
var oleBytes = (Byte[])Cmd.ExecuteScalar();
MemoryStream ms = new MemoryStream();
ms.Write(oleBytes, offset, oleBytes.Length - offset);
var file = Path.GetTempFileName();
using (var fileStream = File.OpenWrite(file))
{
var buffer = ms.GetBuffer();
fileStream.Write(buffer, 0, (int)ms.Length);
}
file
将包含
.tmp
的路径文件,其中包含从存储为
OLE object in Ms Access
的 word 文档中读取的数据。 .这个文件可以直接打开为
word document
或者它的扩展名可以更改
.doc
.
OLEheaderLength
其他格式如下:
1] JPEG/JPG=224
2] BMP=78
3] PDF=85
4] SNP=74
5] DOC=85/90
6] DOCX=87
OLEheaderLength
的
.txt(Simple Text) files
.不幸的是,上述解决方案仅适用于
.doc
文件。但是说到
.docx
文件和任何其他文件格式,它失败。
关于ms-access - 如何在通过 C# 读取存储在 access 数据库中 'OLE Object' 字段中的 word 文档时删除垃圾字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9992087/
我正在尝试使用 SAP ABAP OLE OBJECT 打开受密码保护的 excel 文件,如下所示: DATA: lt_excel_line(4096) OCCURS 10 WITH HEADER
我目前正在实现一个 IOleObject 接口(interface),以将我们软件的可视化数据嵌入到其他软件(如 PowerPoint)中。我们的软件创建测量数据的图形评估(图表等)。 目标是,最终用
我对此很陌生。我正在尝试将 355 行传输到目的地 我有 3 列要转移 Customer_Number、Crime_Type、Action_Date。 当我创建源表时都是nvarchar(50) 目标
我有一个包含 2 个组件的数据流任务: 属于 SELECT 查询的 OLEDB 数据源任务: SELECT ACCOUNTID FROM JOBS WHERE STATUS=3 OLE DB 命令任务
我有一个包含 2 个组件的数据流任务: 属于 SELECT 查询的 OLEDB 数据源任务: SELECT ACCOUNTID FROM JOBS WHERE STATUS=3 OLE DB 命令任务
我有一个自定义数据库,我想为其编写一个 OLE DB 提供程序,但我希望用 C# 来完成。 我找到了这两个站点,但所有示例都在 C 中。 http://msdn.microsoft.com/en-us
我正在运行以下代码 /*Fetchinch Last CustID from custMaster*/ int ID = 0; try { con.Open(); da = new
我使用 oledb 提供程序(SQLOLEDB 和 SQL Native OLEDB 提供程序)创建了一个示例应用程序。 案例 1:提供者 = SQLOLEDB hr = ::CoInitialize
我花了几个小时试图解决这个问题。对于给我带来问题的列,我在 sql server 中使用标量函数来获取名称。该功能是正确的并且工作正常。然后我使用一个存储过程与 ssis 一起使用。给我错误的列指出它
我的源是 TXT 平面文件源,目标是 OLE DB 类型。 (见图) 我发现了一个非常basic tutorial on Code Project创建一个包。我完成了这些步骤,但是在调试时出现了一个奇
我正在对SQL Server数据库使用OLE DB批量复制操作,但是在将数据加载到bit列时遇到了麻烦-它们总是填充有true! 我根据下面的代码段从simple reproduction progr
我目前生活在 90 年代,我收到了这段遗留代码。我对 COM/OLE/MFC/ATL 不了解,所以我问这个问题,希望当时有经验的人可以帮助我找出这个问题。 我拥有的是这个非常古老/遗留的 MFC/AT
我使用 WTL 创建了一个 Dialog,继承自 CDialogImpl 类,在主对话框中我创建了另一个对话框,并在第二个子对话框中创建了一个列表控件。我想向列表控件添加拖放功能,我在网上阅读了有关
我使用 WinAPI 函数在 C# 中创建 OLE 文件。 WinAPI 函数是: [DllImport("ole32.dll")] public static extern int O
我正在尝试调整图像大小以在我的 OLED 设备上显示。 我想要显示的图像是: 目前,我的 OLED 显示屏仅显示图像的一小部分: 基于How to resize image? ,我在脚本中添加了 ne
如何在 128x64 OLED 显示屏上滚动长文本 我正在使用 Adafruit_SSD1306 驱动程序 此代码仅显示“This”,因为文本太大而无法显示,但是当我滚动文本时,仅“This”滚动而不
我无法解决这些术语之间的差异。 是COM和ActiveX同义词吗? ActiveX对象仅仅是公开IDispatch的COM对象吗? 许多较旧的MSDN页面提到IDispatch时没有任何COM上下文。
我们在 Delphi 7 中使用一些 OLE 自动化来打开一个 word 文档,然后在加载后保存它,并将其加载到数据库中。 这工作正常,但部分要求是在 OLE 位发生时有一个进度条,如果 OLE 部分
在我当前使用的产品中,Excel 电子表格是使用 Delphi 的 OLE 生成的。电子表格包含许多日期,应用程序从系统设置加载短日期格式并将其应用到单元格。除非系统格式至少设置为俄语、巴什基尔语、鞑
这个 c++ question 的语法是什么?在德尔福? 使用 oleContainer 后,并尝试执行 SaveDocumentAs 但不起作用。我认为这可能是一个不错的选择。 更新:感谢您的翻译,
我是一名优秀的程序员,十分优秀!