C#操作如何修改、添加Excel中的单元格的数据????求高手指点呀。。。在线等待。。。。

kissapple500 2014-06-19 03:12:08
我有一个Excel文档,现在要修改里面的某行某列的数据,怎么修改啊?或者我想在每行的后面添加一列。如下图。


我想修改金额单元格的数据或者在每列的最后,也就是D列,再添加一列:状态,如何用C#实现呀???

求高手指点呀。。。。。。。。
...全文
361 点赞 收藏 20
写回复
20 条回复
dgy_1748793162 2014年06月25日
读取文本文件到Excel并对数据列格式化 private void btn_SelectTxt_Click(object sender, EventArgs e) { OpenFileDialog openTxt = new OpenFileDialog();//实例化打开对话框对象 openTxt.Filter = "文本文件|*.txt";//设置打开文件筛选器 openTxt.Multiselect = false;//设置打开对话框中不能多选 if (openTxt.ShowDialog() == DialogResult.OK)//判断是否选择了文件 { txt_Txt.Text = openTxt.FileName;//显示选择的文本文件 } } private void btn_SelectExcel_Click(object sender, EventArgs e) { OpenFileDialog openExcel = new OpenFileDialog();//实例化打开对话框对象 openExcel.Filter = "Excel文件|*.xls";//设置打开文件筛选器 openExcel.Multiselect = false;//设置打开对话框中不能多选 if (openExcel.ShowDialog() == DialogResult.OK)//判断是否选择了文件CodeGo.net/ { txt_Excel.Text = openExcel.FileName;//显示选择的Excel文件 } } private void btn_Read_Click(object sender, EventArgs e) { int P_int_Count=0;//记录正在读取的行数 string P_str_Line, P_str_Content = "";//记录读取行的内容及遍历到的内容 List<string> P_str_List = new List<string>();//存储读取的所有内容 StreamReader SReader = new StreamReader(txt_Txt.Text, Encoding.Default);//实例化流读取对象 while ((P_str_Line = SReader.ReadLine()) != null)//循环读取文本文件中的每一行 { P_str_List.Add(P_str_Line);//将读取到的行内容添加到泛型集合中 P_int_Count++;//使当前读取行数加1 } Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//实例化Excel对象 object missing = System.Reflection.Missing.Value;//获取缺少的object类型值 //打开指定的Excel文件 Microsoft.Office.Interop.Excel.Workbook workbook = excel.Application.Workbooks.Open(txt_Excel.Text, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); Microsoft.Office.Interop.Excel.Worksheet newWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.Add(missing, missing, missing, missing); excel.Application.DisplayAlerts = false;//不显示提示对话框 for (int i = 0; i < P_str_List.Count; i++)//遍历泛型集合 { P_str_Content = P_str_List[i];//记录遍历到的值 if (Regex.IsMatch(P_str_Content, "^[0-9]*[1-9][0-9]*$"))//判断是否是数字 newWorksheet.Cells[i + 1, 1] = Convert.ToDecimal(P_str_Content).ToString("¥00.00");//格式化为货币格式,再添加到工作表中 else newWorksheet.Cells[i + 1, 1] = P_str_Content;//直接将遍历到的内容添加到工作表中 } workbook.Save();//保存工作表 workbook.Close(false, missing, missing);//关闭工作表 MessageBox.Show("已经将文本文件内容成功导入Excel工作表中!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }
回复 点赞
泛用人形代码复制机 2014年06月24日
npoi 非常简单.
回复 点赞
昵称怎么都被使用了 2014年06月24日
百度,谷歌一下 npoi
回复 点赞
dntec 2014年06月21日
用NPOI行不行
回复 点赞
kissapple500 2014年06月20日
引用 11 楼 beckhans 的回复:
[quote=引用 10 楼 kissapple500 的回复:] [quote=引用 9 楼 beckhans 的回复:] [quote=引用 7 楼 kissapple500 的回复:] [quote=引用 4 楼 beckhans 的回复:] 可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
为什么注释全是日文???? 有没有中国人的示例给小弟学习下啊????[/quote] 你看函数名还猜不出来这个函数干啥用的[/quote] 看懂了,嘿嘿。 还有个问题啊大哥:你看我的图,我有好多编号,但是这个excel里面可能某些编号有重复的数据,我要把所有的有重复数据的编号给找出来?我不知道有啥简单的方法,我目前想的是,循环遍历。第一个编号,跟后面所有的比较,第二个,第三个,第四个。。。。。每一个都要遍历一次所有的数据啊。太麻烦了。不知道有没有更好的效率高点的 办法呢???????[/quote] 建俩个List,第一个List存图号,每次往第一个List里插时判断List里有没有这个图号,如果有,插入第二个list。用List.Contain方法搞定[/quote] 好主意啊。大大提高了效率呀。英明呀!!多谢哈。。。哈哈。。
回复 点赞
万玩完顽完 2014年06月20日
楼主说的本人解答捕鸟,因为没积分,所以到这里请教大家一个问题,希望能得到解决! 在asp.net在后台方法中给 web控件属性赋值,比如 给image 的imageUrl赋值 为什么提示“未将对象引用设置到对象的实例”!如何解决呢?麻烦知道的回答一下下~~~谢谢楼主~~谢谢大家!
回复 点赞
csdnFUCKINGSUCKS 2014年06月20日
Aspose.Cell控件 使用方法请自行百度
回复 点赞
於黾 2014年06月20日
引用 13 楼 kissapple500 的回复:
[quote=引用 4 楼 beckhans 的回复:] 可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
大哥,为什么我读取excel中某sheet页的数据时,居然有2万多行。。。我只有2行数据而已啊。下面都是空的。。怎么解决啊????????? 我的语句是不是要加什么条件约束啊: "SELECT * FROM [" + sheetName + "$]"[/quote] 程序可不知道你表格里哪些行是空的. 要么你自己处理一下EXCEL,将空行全部在行标题选中,然后删除行. 要么程序里做判断,如果每一列都是空的,remove掉
回复 点赞
kissapple500 2014年06月20日
引用 4 楼 beckhans 的回复:
可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
大哥,为什么我读取excel中某sheet页的数据时,居然有2万多行。。。我只有2行数据而已啊。下面都是空的。。怎么解决啊????????? 我的语句是不是要加什么条件约束啊: "SELECT * FROM [" + sheetName + "$]"
回复 点赞
贝克汉鸭 2014年06月19日
引用 10 楼 kissapple500 的回复:
[quote=引用 9 楼 beckhans 的回复:] [quote=引用 7 楼 kissapple500 的回复:] [quote=引用 4 楼 beckhans 的回复:] 可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
为什么注释全是日文???? 有没有中国人的示例给小弟学习下啊????[/quote] 你看函数名还猜不出来这个函数干啥用的[/quote] 看懂了,嘿嘿。 还有个问题啊大哥:你看我的图,我有好多编号,但是这个excel里面可能某些编号有重复的数据,我要把所有的有重复数据的编号给找出来?我不知道有啥简单的方法,我目前想的是,循环遍历。第一个编号,跟后面所有的比较,第二个,第三个,第四个。。。。。每一个都要遍历一次所有的数据啊。太麻烦了。不知道有没有更好的效率高点的 办法呢???????[/quote] 建俩个List,第一个List存图号,每次往第一个List里插时判断List里有没有这个图号,如果有,插入第二个list。用List.Contain方法搞定
回复 点赞
kissapple500 2014年06月19日
引用 9 楼 beckhans 的回复:
[quote=引用 7 楼 kissapple500 的回复:] [quote=引用 4 楼 beckhans 的回复:] 可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
为什么注释全是日文???? 有没有中国人的示例给小弟学习下啊????[/quote] 你看函数名还猜不出来这个函数干啥用的[/quote] 看懂了,嘿嘿。 还有个问题啊大哥:你看我的图,我有好多编号,但是这个excel里面可能某些编号有重复的数据,我要把所有的有重复数据的编号给找出来?我不知道有啥简单的方法,我目前想的是,循环遍历。第一个编号,跟后面所有的比较,第二个,第三个,第四个。。。。。每一个都要遍历一次所有的数据啊。太麻烦了。不知道有没有更好的效率高点的 办法呢???????
回复 点赞
贝克汉鸭 2014年06月19日
引用 7 楼 kissapple500 的回复:
[quote=引用 4 楼 beckhans 的回复:] 可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
为什么注释全是日文???? 有没有中国人的示例给小弟学习下啊????[/quote] 你看函数名还猜不出来这个函数干啥用的
回复 点赞
807254150 2014年06月19日
百度找一下,网上很多例子的。
回复 点赞
kissapple500 2014年06月19日
引用 4 楼 beckhans 的回复:
可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
为什么注释全是日文???? 有没有中国人的示例给小弟学习下啊????
回复 点赞
tinydyw 2014年06月19日
貌似4.5有和office的对接类的...
回复 点赞
於黾 2014年06月19日
读上来,写回去?
回复 点赞
贝克汉鸭 2014年06月19日
可以查看我空间里的C#操作Execl类 传送门:http://blog.csdn.net/beckhans/article/details/2814570
回复 点赞
贝克汉鸭 2014年06月19日
或者用Execl对象模型实现
回复 点赞
kissapple500 2014年06月19日
引用 1 楼 changjiangzhibin 的回复:
使用VBA操作
什么事VBA啊大哥。指点下啊,没做过啊。有例子吗
回复 点赞
changjiangzhibin 2014年06月19日
使用VBA操作
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告