private void button2_Click(object sender, EventArgs e) { List <string> lstAddStr = new List <string>(); //读取的结果存在这里 Database db = HostApplicationServices.WorkingDatabase; Document doc = Application.DocumentManager.MdiActiveDocument; SetFocus(doc.Window.Handle); //选择完文件在切换焦点 //锁定文档 using (DocumentLock acLckDoc = doc.LockDocument()) { //框选获取文字 选择集知识点 //设置选择集过滤器为只选择单行文字 TypedValue[] acTypValAr = new TypedValue[1]; acTypValAr.SetValue(new TypedValue(0, "MTEXT"), 0); // 单行文本DBText // 创建个人类OtherToosClass对象 用来调用里面的方法 OtherToolsClass otl = new OtherToolsClass(); SelectionSet acSSet = otl.SelectSsGet("GetSelection", null, acTypValAr); if (acSSet != null) { foreach (SelectedObject selObj in acSSet) { // 确认返回的是合法的SelectedObject对象 if (selObj != null) // { //开始启动事物调整文字位置点和对齐点 using (Transaction trans = db.TransactionManager.StartTransaction()) { MText myent = trans.GetObject(selObj.ObjectId, OpenMode.ForWrite) as MText; lstAddStr.Add(myent.Contents); //文字对象复制 } } } } } SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.Title = "输出文本内容"; saveDlg.Filter = "文本文件(*.txt)|*.txt"; saveDlg.InitialDirectory = Path.GetDirectoryName(db.Filename); string fileName = Path.GetFileName(db.Filename); saveDlg.FileName = fileName.Substring(0, fileName.IndexOf('.')); DialogResult saveDlgRes = saveDlg.ShowDialog(); if (saveDlgRes == DialogResult.OK) { string[] contents = new string[lstAddStr.Count]; for (int i = 0; i < lstAddStr.Count; i++) { contents[i] = lstAddStr[i].ToString(); } File.WriteAllLines(saveDlg.FileName, contents); } }
public void TextBatchAlign() { Database db = HostApplicationServices.WorkingDatabase; Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("\n 欢迎使用文字批量对齐程序!!!"); // 选择一个基准点 Point3d point = otl.SelectPoint("\n>>>>请选择基准点!!"); // 创建一个 TypedValue 数组来定义过滤器条件 //TypedValue[] typeValue = new TypedValue[1]; TypedValue[] typeValue = new TypedValue[2]; // 过滤条件 只选择单行文本 typeValue.SetValue(new TypedValue(0, "TEXT"), 0); // 文本内容 //typeValue.SetValue(new TypedValue((int)DxfCode.Text, "数据智能笔记A"), 1); // 选择集 区域手动选择方式 SelectionSet sSet = otl.SelectSsGet("GetSelection", null, typeValue); // 判断选择集是否为空 if (sSet != null) { // 如果选择集不为空 遍历选择图元对象 foreach (SelectedObject sSetObj in sSet) { // 开启事务处理 using (Transaction trans = db.TransactionManager.StartTransaction()) { // 单行文本对象 打开方式为写 DBText dbText = trans.GetObject(sSetObj.ObjectId, OpenMode.ForWrite) as DBText; // 垂直方向左对齐 dbText.HorizontalMode = TextHorizontalMode.TextLeft; // 判断对齐方式是否是左对齐 if (dbText.HorizontalMode != TextHorizontalMode.TextLeft) { // 对齐点 Point3d aliPoint = dbText.AlignmentPoint; ed.WriteMessage("\n" + aliPoint.ToString()); // 位置点 Point3d position = dbText.Position; dbText.AlignmentPoint = new Point3d(point.X, position.Y, 0); } // 如果是左对齐只需要调整插入点 else { Point3d position = dbText.Position; dbText.Position = new Point3d(point.X, position.Y, 0); } trans.Commit(); } } } }
private void button1_Click(object sender, EventArgs e) { List <string> lstAddStr = new List <string>(); //读取的结果存在这里 Database db = HostApplicationServices.WorkingDatabase; Document doc = Application.DocumentManager.MdiActiveDocument; SetFocus(doc.Window.Handle); //选择完文件在切换焦点 //锁定文档 using (DocumentLock acLckDoc = doc.LockDocument()) { //框选获取文字 //设置选择集过滤器为只选择多行文本 TypedValue[] typeValue = new TypedValue[1]; typeValue.SetValue(new TypedValue(0, "MTEXT"), 0); // 创建个人类OtherToosClass对象 用来调用里面的方法 OtherToolsClass otl = new OtherToolsClass(); SelectionSet acSSet = otl.SelectSsGet("GetSelection", null, typeValue); if (acSSet != null) { foreach (SelectedObject selObj in acSSet) { // 确认返回的是合法的SelectedObject对象 if (selObj != null) // { //开始启动事物调整文字位置点和对齐点 using (Transaction trans = db.TransactionManager.StartTransaction()) { MText myent = trans.GetObject(selObj.ObjectId, OpenMode.ForWrite) as MText; lstAddStr.Add(myent.Contents); //文字对象复制 } } } } //数据接下来输出到EXCEL表格 IWorkbook wk = null; //新建IWorkbook对象 string localFilePath = "D:\\TEST.xlsx"; // 调用一个系统自带的保存文件对话框 写一个EXCEL SaveFileDialog saveFileDialog = new SaveFileDialog(); //新建winform自带保存文件对话框对象 saveFileDialog.Filter = "Excel Office97-2003(*.xls)|*.xls|Excel Office2007及以上(*.xlsx)|*.xlsx"; //过滤只能存储的对象 DialogResult result = saveFileDialog.ShowDialog(); //显示对话框 localFilePath = saveFileDialog.FileName.ToString(); //07版之前和之后创建方式不一样 if (localFilePath.IndexOf(".xlsx") > 0) // 2007版 { wk = new XSSFWorkbook(); //创建表格对象07版之后 } else if (localFilePath.IndexOf(".xls") > 0) // 创建表格对象 2003版本 { wk = new HSSFWorkbook(); //03版 } //创建工作簿 ISheet tb = wk.CreateSheet("输出的文本"); for (int i = 0; i < lstAddStr.Count; i++) { ICell cell = tb.CreateRow(i).CreateCell(0); //单元格对象 第i行第0列 cell 单元格对象 cell.SetCellValue(lstAddStr[i]); //循环往单元格赋值 } //创建文件 using (FileStream fs = File.OpenWrite(localFilePath)) //打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件! { wk.Write(fs); //文件IO 创建EXCEL MessageBox.Show("提示:创建成功!"); fs.Close(); } } }