我有一个Winform项目,在Microsoft Framework 3.5上创建。 用户可能已经安装了Windows 7或Windows XP以及Office 2007或更高版本。如何使用剪贴板将数据从Excel表格复制到DataTable?
我正在开发一个过程来获取剪贴板数据并放入C#DataTable中。 我已经创建了一个方法从剪贴板获取原始数据并将其上传到DataTable中。
但在某些情况下,Excel数据显示的值,但内部有另一个:
我调查的方法,以从Excel中获得的原始数据:
string XmlFmt = "XML Spreadsheet";
var clipboard = Clipboard.GetDataObject();
if (clipboard.GetDataPresent(XmlFmt))
{
var clipData = clipboard.GetData(XmlFmt);
StreamReader streamReader = new StreamReader((MemoryStream)clipData);
streamReader.BaseStream.SetLength(streamReader.BaseStream.Length - 1);
string xmlText = streamReader.ReadToEnd();
var stream = new StringReader(xmlText);
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xmlText);
DataSet dsExcelData = new DataSet();
dsExcelData.ReadXml(new XmlNodeReader(xmlDocument));
}
但是,此方法使用Excels数据的每个部分的配置来检索具有多个表的DataSet:
基本上,我想将这些结构转换为只有原始数据的简单DataTable。 有人可以帮助我一个提示如何实现这一目标? ...我不想在这个实现中使用第三方库。
dsExcelData.Tables [0]将为您提供第一个基础数据表 – MethodMan