首页 新闻 会员 周边

c#语言把Textbox控件里的数据导出到Excel中

0
悬赏园豆:5 [已解决问题] 解决于 2012-03-10 11:08

c#语言把Textbox控件里的数据导出到Excel中,急求。。。

式圣2012的主页 式圣2012 | 初学一级 | 园豆:196
提问于:2012-03-09 11:06
< >
分享
最佳答案
0

将你要导出的数据写入到一个Table中,再进行导出即可。

这里有个例子:

法1、可以将数据导出到Excel文件中,但导出的Excel中的内容数据为html格式的:

http://www.cnblogs.com/baiyuntian/archive/2012/03/09/2387471.html

法2、就是使用能够生成Excel文件的类库,先生成Excel文件,然后将数据写入到Excel中,再下载出Excel文件:

       类库:Microsoft.Office.Interop.Excel.dll    或者   Interop.Excel.dll  (当然也有其它的,这只供参考。。。)

http://www.cnblogs.com/baiyuntian/archive/2012/03/07/2384393.html

你可以根据你的情况作适当的修改。。。

收获园豆:5
KivenRo | 小虾三级 |园豆:1734 | 2012-03-09 13:41

谢谢,根据你提供的代码,我自己修改成功了,把Textbox控件里的数据成功导入Excel,代码如下:

 

private void button2_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.DefaultExt = "xls";    //设置默认扩展名为xls
            sfd.Filter = "Excel文件(*.xls)|*.xls";//另存文件时文件类型框中出现的内容
            if (sfd.ShowDialog() == DialogResult.OK)  //获取选定的另存文件对话框存在
            {
                DoExport(this.textBox2, sfd.FileName);
            }
        }
        private void DoExport(TextBox textbox, string strFileName)
        {
           // string[] lines = System.Text.RegularExpressions.Regex.Split(textbox.Text, "/r/n");
          //  int rowNum = lines.Length;//获取 TextBox2控件里的数据行数
            int rowNum=textbox.Lines.Length; //读取Textbox控件里数据的行数
            int rowIndex = 1;   //定义一个Excel行
            int col = 1;        //定义一个Excel列,默认为1
            if (rowNum == 0 || string.IsNullOrEmpty(strFileName)) //控件里没有数据
            {
                return;
            }
            if (rowNum > 0)//控件里有数据
            {
                Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
                if (xlApp == null)
                {
                    MessageBox.Show("无法创建Excel对象,可能您的系统未安装Excel");
                    return;
                }
                xlApp.DefaultFilePath = "";
                xlApp.DisplayAlerts = true;
                xlApp.SheetsInNewWorkbook = 1;
                Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
                for (int i = 0; i < rowNum; i++)//将数据导入Excel
                {
                    string ss = textbox.Lines[i].ToString();  //读取相对应行的数据,这里只是测试用
                    rowIndex++;
                    xlApp.Cells[rowIndex,col] = Convert.ToString(textbox.Lines[i].ToString()) + "\t";//读取到的Textbox控件里的数据导入到Excel
                    //xlApp.Rows[rowIndex,0] = Convert.ToString(textbox.Lines[i].ToString()) + "\t";
                }
                xlBook.SaveAs(strFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                xlApp = null;
                xlBook = null;
                MessageBox.Show("数据导入成功!!");
            }
           

        }

式圣2012 | 园豆:196 (初学一级) | 2012-03-10 11:07
其他回答(2)
0

用NPOI

邀月 | 园豆:25475 (高人七级) | 2012-03-09 11:50
0

把textbox中的內容,放到一個table里,然後調用oledb寫入excell中。連接到真個excell文件。像操作db一樣。insert

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-09 12:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册