我会用Excel COM库打开电子表格.如果添加对Microsoft Excel对象库的引用,则可以转到Com接口.
添加这些使用语句:
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
Run Code Online (Sandbox Code Playgroud)
然后您可以通过执行以下操作从电子表格中读取:
private void GetData(string fileName, string tabName)
{
Workbook theWorkbook;
Application ExcelObj = null;
ExcelObj = new Application();
theWorkbook = ExcelObj.Workbooks.Open(fileName,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
Sheets sheets = theWorkbook.Worksheets;
Worksheet worksheet = (Worksheet)sheets[tabName];
Range range = worksheet.get_Range("A1:A1", Type.Missing);
string data = range.Text as string;
//
// TODO : store the data
//
theWorkbook.Close(false, fileName, null);
}
Run Code Online (Sandbox Code Playgroud)
此代码将A1单元格的内容读入字符串.
使用Excel COM接口的一个怪癖是,您必须访问Range中的数据,即使您只需要一个单元格.您可以将范围设置为一组单元格,然后您可以迭代它返回的集合以获取每个单元格的内容.
您还需要在文件名和选项卡名称上添加一些错误检查/处理.
还有一种方法可以使用ODBC从Excel中读取,但电子表格必须以某种方式进行格式化.第1行必须有标题数据.我发现使用COM接口更容易.
获得所需的数据后,可以将其放入类型化的DataSet中.然后,如果您在WPF中使用WinForms或ListBox,则可以将该数据集绑定到DataGridView.如果您只想以XML格式保存数据,可以使用DataSet WriteXml函数将数据存储到文件中.
| 归档时间: |
|
| 查看次数: |
21183 次 |
| 最近记录: |