묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
파이썬 한글셀필드 응용 질문
안녕하세요! 사무보조알바하면서 자동화 프로그램을 만들어서 일에 도움이 될수있게 파이썬을 배우고있는 대학생입니다! 아래아 한글에 셀필드를 지정하고 셀들을 각 _3번까지 만들어두었습니다. 엑셀에서 각 시트별로 동일한 과제번호끼리 데이터를 가져와서 아래아한글파일에 각 과제번호 별로 데이터값을 넣어서 저장해주는 코드를 만들었는데 셀필드를 3개만 만들어두니까 데이터값이 3개 넘어가는거는 더 이상 저장이 안되더라구요.그래서 제가 아는 함수도 사용해봐도 셀이 추가되지않아서 데이터값이 들어가지않더라구요 ㅠㅡㅠ 혹시 어떻게 하면 될지 알려주실수있나요?엑셀에서 한글파일에 데이터값을 넣는 코드 올려드립니다! 제발 해결됬으면 좋겠어요 ㅠㅠ import pandas as pd from tkinter import Tk, filedialog import win32com.client as win32 import os def select_file(file_type): root = Tk() root.withdraw() file_path = filedialog.askopenfilename( filetypes=[(file_type, "*.xlsx" if file_type == "Excel files" else "*.hwp")] ) root.destroy() return file_path def read_excel(file_path): xls = pd.ExcelFile(file_path) data = {} for sheet_name in xls.sheet_names: df = pd.read_excel(xls, sheet_name=sheet_name) data[sheet_name] = df return data def group_data_by_project_number(data): grouped_data = {} for sheet_name, df in data.items(): if '과제번호' in df.columns: for _, row in df.iterrows(): project_number = row['과제번호'] if project_number not in grouped_data: grouped_data[project_number] = {} if sheet_name not in grouped_data[project_number]: grouped_data[project_number][sheet_name] = [] grouped_data[project_number][sheet_name].append(row) return grouped_data def fill_hwp_template(hwp_file_path, grouped_data, output_dir): hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject") for project_number, data in grouped_data.items(): hwp.Open(hwp_file_path) try: hwp.PutFieldText("과제번호", project_number) for sheet_name, rows in data.items(): for index, row in enumerate(rows, start=1): suffix = f"_{index}" if index > 1 else "" if sheet_name == '0-1.과제기본정보': hwp.PutFieldText(f"사업분야{suffix}", row.get('사업분야', '')) hwp.PutFieldText(f"과제명{suffix}", row.get('과제명', '')) hwp.PutFieldText(f"과제번호{suffix}", row.get('과제번호', '')) hwp.PutFieldText(f"총괄책임자{suffix}", row.get('총괄책임자', '')) hwp.PutFieldText(f"당해지원사업명{suffix}", row.get('당해지원사업명', '')) hwp.PutFieldText(f"기술분류(대분류){suffix}", row.get('기술분류(대분류)', '')) hwp.PutFieldText(f"기술분류(중분류){suffix}", row.get('기술분류(중분류)', '')) hwp.PutFieldText(f"기술분류(소분류){suffix}", row.get('기술분류(소분류)', '')) hwp.PutFieldText(f"연구개발단계{suffix}", row.get('연구개발단계', '')) hwp.PutFieldText(f"과제유형{suffix}", row.get('과제유형', '')) hwp.PutFieldText(f"주관기관{suffix}", row.get('주관기관', '')) hwp.PutFieldText(f"총개발기간{suffix}", row.get('총개발기간', '')) hwp.PutFieldText(f"참여기관{suffix}", row.get('참여기관', '')) hwp.PutFieldText(f"성명{suffix}", row.get('성명', '')) hwp.PutFieldText(f"직위{suffix}", row.get('직위', '')) hwp.PutFieldText(f"휴대전화{suffix}", row.get('휴대전화', '')) hwp.PutFieldText(f"소속기관{suffix}", row.get('소속기관', '')) hwp.PutFieldText(f"전자우편{suffix}", row.get('전자우편', '')) elif sheet_name == '0-2.참여기관현황': hwp.PutFieldText(f"0-2.참여기관현황_기관명{suffix}", row.get('기관명', '')) hwp.PutFieldText(f"0-2.참여기관현황_역할{suffix}", row.get('역할', '')) hwp.PutFieldText(f"0-2.참여기관현황_사업자등록번호{suffix}", row.get('사업자등록번호', '')) hwp.PutFieldText(f"0-2.참여기관현황_대표자{suffix}", row.get('대표자', '')) elif sheet_name == '0-1-1.협약사업비': hwp.PutFieldText(f"0-1-1.협약사업비_단계/연차{suffix}", row.get('단계/연차', '')) hwp.PutFieldText(f"0-1-1.협약사업비_연도{suffix}", row.get('연도', '')) hwp.PutFieldText(f"0-1-1.협약사업비_정부출연금{suffix}", row.get('정부출연금', '')) hwp.PutFieldText(f"0-1-1.협약사업비_지자체{suffix}", row.get('지자체', '')) hwp.PutFieldText(f"0-1-1.협약사업비_현금{suffix}", row.get('현금', '')) hwp.PutFieldText(f"0-1-1.협약사업비_현물{suffix}", row.get('현물', '')) hwp.PutFieldText(f"0-1-1.협약사업비_소계{suffix}", row.get('소계', '')) hwp.PutFieldText(f"0-1-1.협약사업비_합계{suffix}", row.get('합계', '')) elif sheet_name == '1.논문': hwp.PutFieldText(f"1.논문_성과관리ID{suffix}", row.get('성과관리ID', '')) hwp.PutFieldText(f"1.논문_성과년도{suffix}", row.get('성과년도', '')) hwp.PutFieldText(f"1.논문_학술지구분{suffix}", row.get('학술지구분', '')) hwp.PutFieldText(f"1.논문_논문명{suffix}", row.get('논문명', '')) hwp.PutFieldText(f"1.논문_학술지명{suffix}", row.get('학술지명', '')) hwp.PutFieldText(f"1.논문_ISSN{suffix}", row.get('ISSN', '')) hwp.PutFieldText(f"1.논문_저자명{suffix}", row.get('저자명', '')) hwp.PutFieldText(f"1.논문_발행일자{suffix}", row.get('발행일자', '')) hwp.PutFieldText(f"1.논문_SCI구분{suffix}", row.get('SCI구분', '')) hwp.PutFieldText(f"1.논문_기여율{suffix}", row.get('기여율', '')) hwp.PutFieldText(f"1.논문_증빙제출여부{suffix}", row.get('증빙제출여부', '')) hwp.PutFieldText(f"1.논문_비고(추가/삭제/수정/증빙보완등){suffix}", row.get('비고(추가/삭제/수정/증빙보완등)', '')) output_file = os.path.join(output_dir, f"{project_number}.hwp") hwp.SaveAs(output_file) print(f"Saved: {output_file}") except Exception as e: print(f"Error filling data for project {project_number}: {e}") finally: hwp.Clear(1) hwp.Quit() def main(): excel_file = select_file("Excel files") if not excel_file: print("No Excel file selected.") return excel_data = read_excel(excel_file) grouped_data = group_data_by_project_number(excel_data) hwp_template_file = select_file("HWP files") if not hwp_template_file: print("No HWP template file selected.") return root = Tk() root.withdraw() output_dir = filedialog.askdirectory() root.destroy() if not output_dir: print("No output directory selected.") return fill_hwp_template(hwp_template_file, grouped_data, output_dir) print("Data successfully filled into HWP files.") if __name__ == "__main__": main()
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
스프링부트,Mysql작업시 빌드
안녕하세요 강의 듣다 궁금한 점이 생겨서 질문 남깁니다! 스프링 부트,mysql 을 이용하여 프로젝트 작업 진행하기 위해 작업 진행전 docker로 초기 환경 세팅을 하고 두가지 동시에 띄우는 작업을 했습니다! 도커 연결전에는 IDE에서 run버튼을 눌러 작업 확인을 했었는데, 지금은 빌드 하고, compose up해서 확인을 해야하는걸까요? run버튼 누르니까 에러가 뜹니다.
-
미해결실전! Querydsl
Querydsl gradle 파일 질문
안녕하세요 스프링부터 3.x 버전대 이상 그래들 설정에서clean {delete file('src/main/generated')} 요부분 은 먼 기능이고 왜넣은건지 궁금합니다! 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
타입스크립트 리액트 시작하기 오류
안녕하세요 선생님강의보구 실습중인데현재 이런 오류가 발생해있는데인터넷 찾아봐도 찾을수가 없어서 혹시 도움을 받을수있을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
playground에서 이상한 하얀색 코드가 생기고 안 없어 집니다
playground에서 입력한 곳에 이상한 하얀색 코드를 없애는 법 좀 알려주세요
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
여유가 되신다면 mmorpg의 꽃, 레이드관련 강의 요청드려도 될까요
용가리가 브레스 쾅발구르기 낙석 쿠과광마지막 발악패턴 비늘탄막 슈슈숭난관을 넘어 던전에서 쌓여가는 우정!상상으로도 가슴뛰는 컨텐츠인데너무 무리한 부탁이겠지유
-
미해결반응형 웹사이트 포트폴리오(Architecture Agency)
안녕하세요. 질문있어서 조심스레 글을 올려봅니다.
page-scroll-effect를 맨 상단 비주얼부분에만 적용하고나머지 section 들은 높이값을 갖도록 하고싶은대요.혹시 알수 있을까요? 말주변이 없어서 아래 이미지를 그렸습니다. ㅠㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
stack의 괄호문자제거 문제, 질문 이제안보시나요..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제 조건에서 소괄호 사이의 존재하는 문자는 제거한다고 했는데 만약 소괄호 쌍이 안맞고 '(' 나 ')'가 남게되는 경우는 감안을 안해도되는건가요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
Zeppelin 쿼리 도중 fb303 에러
안녕하세요. Zeppelin 노트북을 통해, 쿼리를 날리는 실습을 하고 있습니다. SHOW TABLES 등과 같은 쿼리는 잘 작동하고 있습니다.하지만, 몇몇 테이블에 대해 아래와 같이 접근을 시도하면 그 이후 모든 쿼리가 작동하지 않습니다.예를들어 3개의 테이블이 있다고 하면, managed_smartcar_drive_info1managed_smartcar_drive_info2managed_smartcar_drive_info3 managed_smartcar_drive_info1 에 대해SELECT * FROM managed_smartcar_drive_info1 LIMIT 10은 몇 번을 시도하여 잘 되지만, SELECT * FROM managed_smartcar_drive_info2 LIMIT 10혹은SELECT * FROM managed_smartcar_drive_info3 LIMIT 10에 대해 시도하면 fb303 에러가 뜨고 있습니다. 그 후 SELECT * FROM managed_smartcar_drive_info1 LIMIT 10를 다시 실행하면, 동일하게 에러가 발생합니다. putty를 통한 HIVE, HUE를 통한 임팔라와 하이브에서 모두 정상적으로 작동하지만, Zeppelin에서만 문제가 발생하고 있습니다. restart를 하여도, 기존에 정상 작동하던 테이블 및 쿼리만 정상작동하며, 오류를 야기하는 테이블 및 쿼리는 다시 시도해도 동일한 결과가 나오고 있습니다. thrift, fb303모두 종속성을 설정해도 잘 안되는 것 같습니다 ㅠㅠ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderServiceTest 실패
OrderServiceTest에서 assertEquals("주문 가격은 가격 * 수량이다")에서 실패가 뜨는데 원인을 찾기 어려워 질문 드립니다. 26000원이 나와야 하는데 0원이 나와서.. 총 가격을 구하는 for문이 안 돌아갔나 싶은데 코드에 오류는 없는 것 같아서 원인을 찾기 어렵습니다. https://drive.google.com/file/d/1SSJFsd6F2hikp7T3MONt5QvklxY-EX3B/view?usp=sharing
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
create_retrieval_chain, Custom LCEL 을 사용해서 chain을 구성하면 코드가 어떻게 되는지 보고 싶습니다.
from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type( llm, retriever=database.as_retriever(), chain_type_kwargs={"prompt": prompt} ) 이 예제 코드에서 create_retrieval_chain, Custom LCEL 을 사용해서 chain을 구성한 코드를 보고싶습니다.
-
해결됨실무에 바로 쓰자! 이커머스 데이터로 배우는 실전 SQL 분석
할인 데이터 확인 편에서 에러가 자꾸 납니다.
이렇게 했는데도 불구하고 계속 에러가 뜹니다 선생님
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
LockSupport.park()의 isInterrupted() 질문
안녕하세요. 김영한님의 강의 잘 보고 있습니다.바보 같은 질문일 수 있지만, Thread.sleep()과는 다르게 LockSupport.park()는 interrupt()를 이용해서 깨어나도 isInterrupted()가 true인 이유가 궁금합니다.그냥 단순히 InterruptedException이 발생하지 않기 때문일까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Batch size의 작동 순서가 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]프록시 부분도 있어 조금 복합적이긴 한데 Batch size의 작동 순서가 궁금합니다. 제가 이해하기로는 예를 들어 수업과 같이 Member 엔티티는 public class Member { @Id @GeneratedValue private Long id; private String name; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") Team team; }Team 엔티티는 public class Team { @Id @GeneratedValue private Long id; private String name; @BatchSize(size = 100) @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); }위와 같다고 할때select t from Team t해당 JPQL로 Team 엔티티들을 조회한다면 t.members의 객체들은 프록시로 존재하여 id 값만을 가지게 되고for (Team result : resultList) { System.out.println("result = " + result.getMembers().size()); for (Member member : result.getMembers()) { System.out.println("member = " + member); } }이 처럼 실행하면서 result.getMembers()가 처음 호출 될때select m1_0.TEAM_ID, m1_0.id, m1_0.age, m1_0.name from Member m1_0 where m1_0.TEAM_ID in (?, ?...)다음과 같은 쿼리를 호출해 Member 프록시들의 target에 알맞게 주입 해주게 되나요? 이 부분이 궁금하여 질문 드립니다.
-
미해결
Frontier Airlines Boston Terminal
Frontier Airlines Boston Terminal Providing a variety of services to guarantee a good travel experience, this terminal is well-equipped to handle international aircraft. Several food options, duty-free shopping, and practical amenities like free Wi-Fi and currency exchange are available to Frontier passengers. Whether travelers are arriving, leaving, or connecting to other planes, the terminal's well-organized design and obvious signage make navigation simple. Travelers passing through Boston Logan International Airport can expect a hassle-free and enjoyable experience from Frontier Airlines because to its dedication to reasonable fares and welcoming service.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
예외부분에 대해서 질문드립니다
교재내용중에, " 해당람다에서 체크예외를 밖으로 던질수 없기때문에 언체크 예외로 바꾸어 던지도록 예외를 전환했다 " 의 의미는===> 람다에서는 bizLogic()을 호출할때 발생하는 체크예외를 throws를 사용해서 밖으로 던질수 없기때문에 try~catch로 예외를 처리했고, 체크예외를 처리할떄 catch안에서 throw로 IllegalStateException(언체크예외)로 바꾸어 던지는 이유는 트랜잭션 템플릿이 비즈니스로직을 수행하다가 언체크 예외가 발생하면 롤백하기 때문이다. 이렇게 이해하면될까요??
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
database.as_retriever 의 결과가 다릅니다.
코드가 똑같은데도 불구하고database.as_retriever 의 결과값이 다를 수 있을까요?as_retriever 함수에 최소 k=5을 넣어야 제55조 항목이 검색됩니다.tax_with_markdown.docx 파일은 제공해주신 파일이고혹시나 싶어서 pinecone index테이블도 삭제했다가 다시 생성해서 바로 찍은 결과입니다. 아래는 제 코드입니다.from langchain_community.document_loaders import Docx2txtLoader from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size=1500, # 각 텍스트 조각의 최대 크기 chunk_overlap=200, # 텍스트 조각 간의 중복 길이 ) # .docx 파일을 로드하고 텍스트를 분할. loader = Docx2txtLoader('./tax_with_markdown.docx') document_list = loader.load_and_split(text_splitter=text_splitter) document_list[52] from dotenv import load_dotenv from langchain_openai import OpenAIEmbeddings # 환경 변수를 로드합니다. load_dotenv() # OpenAI 임베딩 모델을 설정합니다. embedding = OpenAIEmbeddings(model='text-embedding-3-large') import os from pinecone import Pinecone from langchain_pinecone import PineconeVectorStore # Pinecone 인덱스 이름을 설정합니다. index_name = 'tax-markdown-index' # 환경 변수에서 Pinecone API 키를 가져옴 pinecone_api_key = os.environ.get("PINECONE_API_KEY") # Pinecone을 초기화 pc = Pinecone(api_key=pinecone_api_key) # from_documents()`를 사용하여 새 인덱스 생성 database = PineconeVectorStore.from_documents(document_list, embedding, index_name=index_name) query = '연봉 5천만원인 직장인의 소득세는?' retriever = database.as_retriever(search_kwargs={'k': 5}) retriever.invoke(query) 쿼리를 날린 결과를 찍어보면5번째에서 제55조가 나옵니다.아래는 결과값 일부입니다.[Document(metadata={'source': './tax_with_markdown.docx'}, page_content='나. 그 밖의 배당소득에 대해서는 100분의 14\n\n3. Document(metadata={'source': './tax_with_markdown.docx'}, page_content='차. 외국정부(외국의 지방자치단체와 연방국가인 외국의 지방정부 Document(metadata={'source': './tax_with_markdown.docx'}, page_content='1. 「공익신탁법」에 따른 공익신탁의 이익\n\n2. Document(metadata={'source': './tax_with_markdown.docx'}, page_content='저. 대통령령으로 정하는 복리후생적 성질의 급여\n\n4
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Vite 에서 리액트 앱 생성시 Select a variant: 타입스크립트 선택
안녕하세요 선생님강의 잘 보고 있습니다. 다름이 아니라, 리액트 앱 생성시Vite에서 프레임 워크: React 생성후자바스크립트가 아닌 타입스크립트로 생성해도 강의를 수강하는데는 문제가 없는지 알고 싶습니다..!
-
미해결
2024년 8월 최신버전 toolchain 오류 다시 질문
처음 프로젝트 생성 시 생성이 안되면서 아래와 같은 메시지가 뜹니다그냥 ok누르고 프로젝트 생성된 걸보니이렇게 되어 있습니다.프로젝트가 재대로 생성되지 않은 상태입니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의 화면이 안나와서 질문드립니다!
0주차 커리 큘럼에서 알고리즘 교안 공부하는 방법 [필독] 문제 풀 때 주의할 점2분[필독] 질문하는 방법3분[필수개념] 재귀함수(recursion) 이 강의들은 화면 없이 듣는게 맞는걸까요?다른 강의들은 화면이 잘 나옵니다!