excel转成ds后的字符串截取问题

tzysf 2008-09-26 12:47:56
在excel转成ds后,经检查分析,发现字符串的长度给截取了。比如一个excel的单元格,字符串长度在280左右,转成ds后,字符串长度自动取前255个字符,导致了数据丢失,请问各位大虾有好的解决方法没?在线等。
附转换部分的C#代码:
String strConn = "Provider=Microsoft.Jet.OleDb.4.0;";
strConn += "data source=" + filePath + ";";
strConn += "Extended Properties=Excel 8.0;";
strConn += "IMEX=1";//HDR=Yes;
OleDbConnection objConn = new OleDbConnection(strConn);

ArrayList SheetNameList = new ArrayList();
objConn.Open();
System.Data.DataTable dtExcelSchema = new System.Data.DataTable();
dtExcelSchema = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] { null, null, null, "TABLE" });
String SheetName = "";

for (int i = 0; i <= dtExcelSchema.Rows.Count - 1; i++)
{
SheetName = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString();
if (SheetName.IndexOf("$_") > 0)
continue;
SheetNameList.Add(SheetName);
}
DataSet dsExcel = new DataSet();

String strSql = "";
for (int i = 0; i <= SheetNameList.Count - 1; i++)
{
strSql = "select * from [" + SheetNameList[i].ToString() + "]";
OleDbDataAdapter oleExcelDataAdapter = new OleDbDataAdapter(strSql, objConn);

System.Data.DataTable dtExcel = new System.Data.DataTable(SheetNameList[i].ToString().Replace("$", "").Trim());
oleExcelDataAdapter.Fill(dtExcel);
dsExcel.Tables.Add(dtExcel);
}

//foreach (System.Data.DataTable table in dsExcel.Tables)
//{
// table.TableName = table.TableName.Replace("$", "").ToString().Trim();
//}
return dsExcel;
...全文
233 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hufeng_0411 2009-08-27
  • 打赏
  • 举报
回复
朋友,这里有个帖子,http://www.cnblogs.com/huihui0630/archive/2009/06/19/1376144.html,你可以看看。我觉得可以暂时解决一些问题,不过对于有修改注册表限制的人,最好还是将最长的那些东西放到前8行,这样就算是比较落后,不过有用的方法
tzysf 2008-10-22
  • 打赏
  • 举报
回复
谢谢两位!碰到此问题后,暂时采用的就是 icansaymyabc 的方法,分成了两个列存储需要的字符串,每单元格小于255个字符,然后在需要处理的地方进行合并操作。对于Yiqun_Zhao 所提到的,也应该是可行的,我处理的表格数量太大了,7个文件,共30个左右的工作簿,所有工作簿中,超长部分的字段只有5个左右,位置不固定,都设置dt的列长度,感觉有点浪费。
蓝帆·雨轩 2008-10-16
  • 打赏
  • 举报
回复
先定义并设置好datatable的列,然后才填充该datatable
icansaymyabc 2008-10-16
  • 打赏
  • 举报
回复
好办法就是别转换或转换前对excel标进行预处理使得不包含超过 255 字符的字符串。

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧