利用Aspose.Cell控件导入Excel非强类型的数据
2013-07-27 21:35
507 查看
导入Excel的操作是非常常见的操作,可以使用Aspose.Cell、APOI、MyXls、OLEDB、Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据,那么这几种方式好像都表现差不多,正常操作能够导入数据。如果是非强类型的数据,那么就需要特别注意了,一般情况下,导入的DataTable数据列的类型是以第一行内容作为确定列类型的,本文介绍利用Aspose.Cell控件导入Excel非强类型的数据的操作。
什么是强类型的数据呢,就是在Excel表格中,除了第一列名外,他们的数据格式都一样的,如下所示。
如果使用C#导入到Winform界面中,那么数据显示效果如下所示。从这里可以看到,这些数据都是遵循一定的格式,名字为字符串,年龄为数值。
使用OLEDB方式导入Excel数据的代码如下所示。
但有时,我们可能会碰到客户数据不一样的地方。如年龄可能输入了“10”,也可能输入“10岁”这样的,常规的导入,一般是以第一个出现的数值而定,如果是字符串,那么后面的数值可能导入就不能正常显示了。例如,如果是下面的Excel,那么数据Marks列就会以第一行数据为准,后面的那些 “Fail” 字符,将不可识别,在DataTable中的值变为NULL值了。
为了有效录入非强类型的表格数据,我们可以就不能使用常规的操作代码,Aspose.Cell的控件提供了一个API,名为ExportDataTableAsString的函数,这个函数是把所有内容转换为字符串集合类型,这样所有的内容将被保留。
使用Aspose.Cell这个API导入的数据代码如下所示。
使用该函数导入的数据,因为全部都以字符串格式进行导入,就不会出现,有些解析不了的问题了。在Winform中显示出来的结果显示,正常。
什么是强类型的数据呢,就是在Excel表格中,除了第一列名外,他们的数据格式都一样的,如下所示。
如果使用C#导入到Winform界面中,那么数据显示效果如下所示。从这里可以看到,这些数据都是遵循一定的格式,名字为字符串,年龄为数值。
使用OLEDB方式导入Excel数据的代码如下所示。
try { myDs.Tables.Clear(); myDs.Clear(); this.gridControl1.DataSource = null; string connectString = string.Format(connectionStringFormat, this.txtFilePath.Text); string firstSheet = ExcelHelper.GetExcelFirstTableName(connectString); OleDbConnection cnnxls = new OleDbConnection(connectString); OleDbDataAdapter myDa = new OleDbDataAdapter(string.Format("select * from [{0}]", firstSheet), cnnxls); myDa.Fill(myDs, "【导入表】"); this.gridControl1.DataSource = myDs.Tables[0]; this.gridView1.PopulateColumns(); } catch (Exception ex) { LogHelper.Error(ex); MessageDxUtil.ShowError(ex.Message); }
但有时,我们可能会碰到客户数据不一样的地方。如年龄可能输入了“10”,也可能输入“10岁”这样的,常规的导入,一般是以第一个出现的数值而定,如果是字符串,那么后面的数值可能导入就不能正常显示了。例如,如果是下面的Excel,那么数据Marks列就会以第一行数据为准,后面的那些 “Fail” 字符,将不可识别,在DataTable中的值变为NULL值了。
为了有效录入非强类型的表格数据,我们可以就不能使用常规的操作代码,Aspose.Cell的控件提供了一个API,名为ExportDataTableAsString的函数,这个函数是把所有内容转换为字符串集合类型,这样所有的内容将被保留。
public System.Data.DataTable ExportDataTableAsString ( Int32 firstRow, Int32 firstColumn, Int32 totalRows, Int32 totalColumns, Boolean exportColumnName ) |
Name | Description |
---|---|
firstRow | The row number of the first cell to export out. |
firstColumn | The column number of the first cell to export out. |
totalRows | Number of rows to be imported. |
totalColumns | Number of columns to be imported. |
exportColumnName | Indicates whether the data in the first row are exported to the column name of the DataTable |
bool exportColumnName = true; Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(); workbook.Open(filepath); Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0]; datatable = worksheet.Cells.ExportDataTableAsString(iFirstRow, iFirstCol, rowNum + 1, colNum + 1, exportColumnName);
使用该函数导入的数据,因为全部都以字符串格式进行导入,就不会出现,有些解析不了的问题了。在Winform中显示出来的结果显示,正常。
相关文章推荐
- 利用Aspose.Cell控件导入Excel非强类型的数据
- 用Aspose.Cell控件导入Excel非强类型的数据
- 利用aspose.cell把数据导出到excel
- MVC利用Aspose.Cells.dll实现Excel数据导入数据库
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
- 【转】利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
- JAVA使用poi进行EXCEL模板导入导出,XSSFCell数据类型
- 使用Aspose.Cell控件实现Excel高难度报表的生成(二)
- 利用workbench将excel数据导入到MySQL中
- Visual Basic 2012 借助DataGridView控件将Excel 2010数据导入到SQL server 2012
- 利用java操作Excel表格(把Excel中的数据导入数据库中)
- 数据绑定控件把数据导入到EXCEL的实现方式
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
- 使用Aspose.Cell控件实现Excel高难度报表的生成(一)
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常