假设有一个RichTextBox, text="abcdefghijklmnopqrstuvwxyz";//所有需要导出的数据
listBox1,items=["cde","tuv"]; 
listBox2,items=["jkl","opq"]; 
导出RichTextBox中的内容
当遇到listBox1中的值时,跳转至下一列
当遇到listBox2中的值时,跳转至下一行
最终导出的Excel中内容为:
ab   fghi
mn   
rs   wxyz不知大神们能否看懂..
思路有点乱,望大神们帮忙理理
谢谢

解决方案 »

  1.   

    留个QQ 我可以给你发一个dll,你直接调用一下就可以导出Excel了
      

  2.   

    一楼同还,帮忙再发一份吧,学习学习
    [email protected]楼主的问题。导出EXCEL 你可以直接创建一个EXCEL文件。然后往框框里一个一个填就可以了。
    这是我写的给你参考一下.. Excel.Application m_objExcel = null;
            Excel.Workbook m_objBook = null;
            Excel.Worksheet m_objSheet = null;
            object oMissing = null;
            Excel.Range ER = null;        try {
                // Lixtech.FileManager.FileManage.WriteOperateLog(@"C:\制服系统", "ok");
                m_objExcel = new Excel.ApplicationClass();
                oMissing = System.Reflection.Missing.Value;            m_objExcel.Visible = false;
                m_objExcel.DisplayAlerts = false;
                m_objBook = m_objExcel.Workbooks.Add(true); //添加 
                m_objSheet = (Excel.Worksheet)m_objBook.ActiveSheet;
                m_objSheet.Name = "量身专用簿";
                //Lixtech.FileManager.FileManage.WriteOperateLog(@"C:\制服系统", "ok2");
            } catch (Exception e) {
                return "err_" + e.Message;        }
            try {
                #region
                int useCol = 6;
                int bCol = 6; //差异 
                int Col = 6;
                int rowCol = 7;
                m_objSheet.Cells[3, 1] = "客户编码";
                ER = (Excel.Range)m_objSheet.Cells[3, 1];
                ER.EntireColumn.AutoFit();
                ER.Font.Color = System.Drawing.Color.Blue;
                m_objSheet.Cells[3, 2] = "编码";
                ER = (Excel.Range)m_objSheet.Cells[3, 2];
                ER.NumberFormatLocal = "@";
                ER.EntireColumn.AutoFit();
                ER.Font.Color = System.Drawing.Color.Blue;            m_objSheet.Cells[3, 3] = "部门名称";
                ER = (Excel.Range)m_objSheet.Cells[3, 3];
                ER.EntireColumn.AutoFit();
                ER.Font.Color = System.Drawing.Color.Blue;            m_objSheet.Cells[3, 4] = "工号";
                ER = (Excel.Range)m_objSheet.Cells[3, 4];
                ER.NumberFormatLocal = "@";
                ER.EntireColumn.AutoFit();
                ER.Font.Color = System.Drawing.Color.Blue;            m_objSheet.Cells[3, 5] = "姓名";
                ER = (Excel.Range)m_objSheet.Cells[3, 5];
                ER.EntireColumn.AutoFit();
                ER.Font.Color = System.Drawing.Color.Blue;            m_objSheet.Cells[3, 6] = "性别";
                ER = (Excel.Range)m_objSheet.Cells[3, 6];
                ER.EntireColumn.AutoFit();
                ER.Font.Color = System.Drawing.Color.Blue;            foreach (string s in strCode) {
                    TailorDefine define = list.Find(t => t.cName == s.Trim().Substring(0, s.IndexOf("[")));
                    useCol++;
                    bCol++;
                    m_objSheet.Cells[3, bCol] = "货号";
                    ER = (Excel.Range)m_objSheet.Cells[3, bCol];
                    ER.Font.Color = System.Drawing.Color.Red;
                    bCol++;
                    useCol++;
                    m_objSheet.Cells[3, bCol] = "规格";
                    ER = (Excel.Range)m_objSheet.Cells[3, bCol];
                    ER.EntireColumn.AutoFit();
                    ER.Font.Color = System.Drawing.Color.Red;                bCol++;
                    useCol++;
                    m_objSheet.Cells[3, bCol] = "数量";
                    ER = (Excel.Range)m_objSheet.Cells[3, bCol];
                    ER.EntireColumn.AutoFit();
                    ER.Font.Color = System.Drawing.Color.Blue;
                     .....  ER = m_objSheet.get_Range(GetIndex(Col + 1) + "2", GetIndex(bCol) + "2");     //获取Excel多个单元格区域:本例做为Excel表头 
                        ER.Merge(0);
                        ER.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;     //设置字体在单元格内的对其方式   
                        ER.EntireColumn.AutoFit();
                        Col = bCol;
                        ER.Value2 = define.cDefine15;
                    }
                    useCol++;
                    bCol++;
                    m_objSheet.Cells[3, bCol] = "备注";
                    Col = bCol;                ER = m_objSheet.get_Range(GetIndex(rowCol) + "1", GetIndex(bCol) + "1");     //获取Excel多个单元格区域:本例做为Excel表头
                    ER.MergeCells = true;
                    ER.Value2 = s;
                    ER.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;     //设置字体在单元格内的对其方式   
                    ER.EntireColumn.AutoFit();
                    ER.WrapText = true;     //文本自动换行                 ER = m_objSheet.get_Range(GetIndex(rowCol) + "1", GetIndex(bCol) + "3");
                    ER.BorderAround(Excel.XlLineStyle.xlContinuous);     //给单元格加边框 ;     //设置单元格边框的粗细   
                    rowCol = bCol + 1;
                    useCol = bCol;
                    Col = bCol;                ER = m_objSheet.get_Range("G4");
                    ER.Select();
                    m_objExcel.ActiveWindow.FreezePanes = true;
      m_objBook.SaveAs(path, oMissing, oMissing, oMissing, oMissing, oMissing, Excel.XlSaveAsAccessMode.xlNoChange, oMissing, oMissing, oMissing, oMissing);
      

  3.   

    To #3
    谢谢你的代码.
    一般的从datagridview导出excel我会操作,用range,很效率
    现在要根据自己设置的字符串进行换列,换行,思路有点乱..不知道该从何下手.
      

  4.   

    求DLL
    [email protected]
    谢谢
      

  5.   

    http://blog.csdn.net/happy09li/article/details/7431967