EXCEL中有几千张工作表。其中,
主表SHEET1有姓名 电话 年龄等用户信息,姓名字段有连接;
消费信息表SHEET2、SHEET3。。。。SHEETN,每张表都是纪录主表SHEET1中单个用户相关消费信息的。
我想把相关的消费信息也导出到SQLSERVER另一张表中,并存在跟主表存在一个关联关系。
现在的问题是,在导出主表的时候,我没有办法导出名字上的那个连接地址,这样就不能建立用户表和消费信息表的对应关系了。
后来想将这个连接用个什么公式写在主表的某个字段里一并导出,问了EXCEL高手,可是失败了。
怎样才能得到这个连接呢?
18 个解决方案
#1
自己顶
#2
这个问题,有点麻烦, 建议你先读到dataset里 ,然后用relations 来处理,一下。
如果我说的不对 ,就算帮你顶。
如果我说的不对 ,就算帮你顶。
#3
我还顶!!!没有人会吗?
#4
这个帖子又悲剧了?
#5
呵呵,楼主在这啊,我把代码整理下就发上来。
#6
哦?可以实现?
#7
使用DataSet将相关联的数据处理好再保存到SQL Server中吧
#8
这个是引用EXCEL类库的,前面那些代码一大堆我就不贴了,我把这个贴上来,亲测成功
string ohlk="";
if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address != null)//因为Hyperlinks有外联结的,就是这个Address,NULL就说明无外联结
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address.ToString();
}
else if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress != null)//SubAddress表示是表内SHEET的链接
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress.ToString();
}
worksheet.Cells[2, 1] = ohlk.ToString();//结果是把单元格A3的链接写到单元格A2中区了,楼主你可以参考改成自己的
string ohlk="";
if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address != null)//因为Hyperlinks有外联结的,就是这个Address,NULL就说明无外联结
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address.ToString();
}
else if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress != null)//SubAddress表示是表内SHEET的链接
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress.ToString();
}
worksheet.Cells[2, 1] = ohlk.ToString();//结果是把单元格A3的链接写到单元格A2中区了,楼主你可以参考改成自己的
#9
没法处理,想要的提取不到.
#10
太感谢了,我这就试试!!!
#11
public string GetCellLink(Excel.Worksheet ws, int x, int y)
{
string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address;
return url;
}
简单一点..
{
string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address;
return url;
}
简单一点..
#13
可否把全部代码发出来看看
#14
帮顶 争取楼主不成杯具贴
我一般的方法都是先导入到gridview 再从gridview导入到数据库 虽然复杂 但是不出错.
我一般的方法都是先导入到gridview 再从gridview导入到数据库 虽然复杂 但是不出错.
#15
我之前做的一个小软件是读TXT的数据 在 DATAgideview显示,然后写入excel,导入SQL数据库,我提议不妨你先用DATAGRIDVIEW读出来在导入数据库中。。。。 好的方法我还没试过,,,希望有好的方法贴出来分享
#16
中午睡觉去了,我的代码在这个地址,大家看到的也帮我看下吧,郁闷死了。
地址如下: http://topic.csdn.net/u/20100325/21/c822a751-a321-4f50-9982-63a503848498.html
地址如下: http://topic.csdn.net/u/20100325/21/c822a751-a321-4f50-9982-63a503848498.html
#17
11楼的别忘了哦,注意看我的代码有说明哦,Address是外链接,内链接是SubAddress哦,改成这样吧
public string GetCellLink(Excel.Worksheet ws, int x, int y)
{
if((ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address!=null)
{string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address;}
else if((ws.Cells[x, y] as Excel.Range).Hyperlinks[1].SubAddress!=null)
{string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].SubAddress;}
else {string url =""}
return url;
}
#18
楼主你C#稍微熟悉点的话,看我们的代码再根据你自己原来的代码改下就好了,你不熟悉的话给你身边的朋友看下,懂的人的话改下就好了,我们上面的代码就是返回链接字符串的,你就可以把它作为参数传递给存储过程存进数据库了。
#1
自己顶
#2
这个问题,有点麻烦, 建议你先读到dataset里 ,然后用relations 来处理,一下。
如果我说的不对 ,就算帮你顶。
如果我说的不对 ,就算帮你顶。
#3
我还顶!!!没有人会吗?
#4
这个帖子又悲剧了?
#5
呵呵,楼主在这啊,我把代码整理下就发上来。
#6
哦?可以实现?
#7
使用DataSet将相关联的数据处理好再保存到SQL Server中吧
#8
这个是引用EXCEL类库的,前面那些代码一大堆我就不贴了,我把这个贴上来,亲测成功
string ohlk="";
if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address != null)//因为Hyperlinks有外联结的,就是这个Address,NULL就说明无外联结
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address.ToString();
}
else if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress != null)//SubAddress表示是表内SHEET的链接
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress.ToString();
}
worksheet.Cells[2, 1] = ohlk.ToString();//结果是把单元格A3的链接写到单元格A2中区了,楼主你可以参考改成自己的
string ohlk="";
if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address != null)//因为Hyperlinks有外联结的,就是这个Address,NULL就说明无外联结
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).Address.ToString();
}
else if (((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress != null)//SubAddress表示是表内SHEET的链接
{
ohlk = ((Excel.Range)worksheet.Cells.get_Item(1, 3)).Hyperlinks.get_Item(1).SubAddress.ToString();
}
worksheet.Cells[2, 1] = ohlk.ToString();//结果是把单元格A3的链接写到单元格A2中区了,楼主你可以参考改成自己的
#9
没法处理,想要的提取不到.
#10
太感谢了,我这就试试!!!
#11
public string GetCellLink(Excel.Worksheet ws, int x, int y)
{
string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address;
return url;
}
简单一点..
{
string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address;
return url;
}
简单一点..
#12
#13
可否把全部代码发出来看看
#14
帮顶 争取楼主不成杯具贴
我一般的方法都是先导入到gridview 再从gridview导入到数据库 虽然复杂 但是不出错.
我一般的方法都是先导入到gridview 再从gridview导入到数据库 虽然复杂 但是不出错.
#15
我之前做的一个小软件是读TXT的数据 在 DATAgideview显示,然后写入excel,导入SQL数据库,我提议不妨你先用DATAGRIDVIEW读出来在导入数据库中。。。。 好的方法我还没试过,,,希望有好的方法贴出来分享
#16
中午睡觉去了,我的代码在这个地址,大家看到的也帮我看下吧,郁闷死了。
地址如下: http://topic.csdn.net/u/20100325/21/c822a751-a321-4f50-9982-63a503848498.html
地址如下: http://topic.csdn.net/u/20100325/21/c822a751-a321-4f50-9982-63a503848498.html
#17
11楼的别忘了哦,注意看我的代码有说明哦,Address是外链接,内链接是SubAddress哦,改成这样吧
public string GetCellLink(Excel.Worksheet ws, int x, int y)
{
if((ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address!=null)
{string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].Address;}
else if((ws.Cells[x, y] as Excel.Range).Hyperlinks[1].SubAddress!=null)
{string url = (ws.Cells[x, y] as Excel.Range).Hyperlinks[1].SubAddress;}
else {string url =""}
return url;
}
#18
楼主你C#稍微熟悉点的话,看我们的代码再根据你自己原来的代码改下就好了,你不熟悉的话给你身边的朋友看下,懂的人的话改下就好了,我们上面的代码就是返回链接字符串的,你就可以把它作为参数传递给存储过程存进数据库了。